Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
research:software:haskellaop:ghc-extensions [2012/12/06 12:57] – [NoMonomorphismRestriction] ifigueroresearch:software:haskellaop:ghc-extensions [2012/12/06 12:57] (current) – [MultiParamTypeClasses] ifiguero
Line 8: Line 8:
 By default, type classes in Haskell can only have one type parameter. This extension allows a type class to take one or more arguments, thus becoming a relation between types.  By default, type classes in Haskell can only have one type parameter. This extension allows a type class to take one or more arguments, thus becoming a relation between types. 
  
-The standard monadic libraries depend on this extension. For instance, the MonadState is parameterized by the state type s, and the monad, and implies that in m one can manipulate a state of type s using the get and put operations [[http://hackage.haskell.org/packages/archive/mtl/latest/doc/html/Control-Monad-State-Class.html|See Reference.]]+The standard monadic libraries depend on this extension. For instance, the MonadState is parameterized by the state type s, and the monad m, and implies that in m one can manipulate a state of type s using the get and put operations [[http://hackage.haskell.org/packages/archive/mtl/latest/doc/html/Control-Monad-State-Class.html|See Reference.]]
  
-We use this extension to define three multi-parameter type classes:+We use this extension to define the following multi-parameter type classes:
   * OpenApp, for overloaded uses of #.   * OpenApp, for overloaded uses of #.
   * MonadDeploy, to specify the semantics of aspect deployment.   * MonadDeploy, to specify the semantics of aspect deployment.