@hackage rmonad0.7

Restricted monad library

rmonad provides a restricted monad class in the Control.RMonad hierarchy. The class makes use of associated datatypes (available in GHC 6.8), using an idea learnt from Wolfgang Jeltsch: http://www.haskell.org/pipermail/haskell-cafe/2008-March/041084.html

It also provides a way to treat a restricted monad as a normal monad using a generic wrapper type. This idea is described here: http://hsenag.livejournal.com/11803.html?nc=5

See the haddock documentation for information on how to use it.

darcs get http://code.haskell.org/rmonad

TODO

Add instances for all the mtl stuff. Consider also doing this for mtl-tf (namespacing issues?)

Add all the normal monad combinators

Should we use Monad etc rather than RMonad etc for naming?

  • Pro: standard modern namespacing conventions
  • Anti: Module names need to be different to allow co-existence

Do we actually want RApplicative etc? Nasty because most restrictions aren't much use on function types DSELs are a good example of where Suitable could be closed over function types