wiki:MultiParamTypeClasses

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

fix URL

Multi-parameter type classes

See ExtensionDescriptionHowto for information on how to write these extension descriptions. Please add any new extensions to the list of HaskellExtensions.

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