Object-Oriented Style Overloading for Haskell (Extended Abstract)
β Scribed by Mark Shields; Simon Peyton Jones
- Publisher
- Elsevier Science
- Year
- 2001
- Tongue
- English
- Weight
- 992 KB
- Volume
- 59
- Category
- Article
- ISSN
- 1571-0661
No coin nor oath required. For personal study only.
β¦ Synopsis
Haskell has a sophisticated mechanism for overloading identifiers with multiple definitions at distinct types. Object-oriented programming has a similar notion of overriding and overloading for methods names. Unfortunately, it is not possible to encode object-oriented overloading directly using Haskell overloading. This deficiency becomes particularly tiresome when Haskell programs wish to call methods imported from an object-oriented library.
We present two refinements of Haskell's type class system: Closed classes and overlapping instances. We demonstrate how we may exploit the refined system so as to be able to encode object-oriented classes within Haskell. This encoding allows us to mimic, within Haskell, the overloading resolution rules employed by object-oriented languages without the need for additional type annotations or name mangling. As a consequence, object-oriented class libraries are very convenient to import and use within Haskell.
π SIMILAR VOLUMES