|Version 8 (modified by ross@…, 8 years ago) (diff)|
Multi-parameter type classes
Classes take one or more arguments, becoming relations between types.
The base package of the Haskell hierarchical libraries contains only two such classes:
class HasBounds a => IArray a e class (HasBounds a, Monad m) => MArray a e m
There are FlexibleInstances
instance IArray Array e instance IArray UArray Bool instance IArray UArray Char ...
but no OverlappingInstances.
- Type classes: exploring the design space by Simon Peyton Jones, Mark Jones and Erik Meijer, Haskell Workshop 1997.
- offered by GHC and Hugs for years
- express more interesting relationships