wiki:MultiParamTypeClasses

Version 7 (modified by ross@…, 9 years ago) (diff)

ticket link

Multi-parameter type classes

Ticket(s)

Brief Explanation

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.

References

Pros

  • offered by GHC and Hugs for years
  • express more interesting relationships

Cons