Haskell's overlooked object system

Computer Science – Programming Languages

Scientific paper

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

79 pages; software available at http://homepages.cwi.nl/~ralf/OOHaskell/

Scientific paper

Haskell provides type-class-bounded and parametric polymorphism as opposed to subtype polymorphism of object-oriented languages such as Java and OCaml. It is a contentious question whether Haskell 98 without extensions, or with common extensions, or with new extensions can fully support conventional object-oriented programming with encapsulation, mutable state, inheritance, overriding, statically checked implicit and explicit subtyping, and so on. We systematically substantiate that Haskell 98, with some common extensions, supports all the conventional OO features plus more advanced ones, including first-class lexically scoped classes, implicitly polymorphic classes, flexible multiple inheritance, safe downcasts and safe co-variant arguments. Haskell indeed can support width and depth, structural and nominal subtyping. We address the particular challenge to preserve Haskell's type inference even for objects and object-operating functions. The OO features are introduced in Haskell as the OOHaskell library. OOHaskell lends itself as a sandbox for typed OO language design.

No associations

LandOfFree

Say what you really think

Search LandOfFree.com for scientists and scientific papers. Rate them and share your experience with other people.

Rating

Haskell's overlooked object system does not yet have a rating. At this time, there are no reviews or comments for this scientific paper.

If you have personal experience with Haskell's overlooked object system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Haskell's overlooked object system will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFWR-SCP-O-395019

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.