wiki:MultiParamTypeClasses

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

--

Multi-parameter type classes

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

Tickets

#49
add multi parameter type classes
#90
solve the MultiParamTypeClassDilemma

Pros

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

Cons