Article contents
A system of constructor classes: overloading and implicit higher-order polymorphism†
Published online by Cambridge University Press: 07 November 2008
Abstract
This paper describes a flexible type system that combines overloading and higher-order polymorphism in an implicitly typed language using a system of constructor classes—a natural generalization of type classes in Haskell. We present a range of examples to demonstrate the usefulness of such a system. In particular, we show how constructor classes can be used to support the use of monads in a functional language. The underlying type system permits higher-order polymorphism but retains many of the attractive features that have made Hindley/Milner type systems so popular. In particular, there is an effective algorithm that can be used to calculate principal types without the need for explicit type or kind annotations. A prototype implementation has been developed providing, amongst other things, the first concrete implementation of monad comprehensions known to us at the time of writing.
- Type
- Articles
- Information
- Copyright
- Copyright © Cambridge University Press 1995
References
- 44
- Cited by
Discussions
No Discussions have been published for this article.