Safe Haskell | None |
---|---|
Language | Haskell2010 |
Monadic constructs
This module is based on the paper Generic Monadic Constructs for Embedded Languages (Persson et al., IFL 2011 http://www.cse.chalmers.se/~emax/documents/persson2011generic.pdf).
Documentation
data MONAD m sig where Source #
Return :: MONAD m (a :-> Full (m a)) | |
Bind :: MONAD m (m a :-> ((a -> m b) :-> Full (m b))) | |
Then :: MONAD m (m a :-> (m b :-> Full (m b))) | |
When :: MONAD m (Bool :-> (m () :-> Full (m ()))) |
Instances
Monad m => Semantic (MONAD m) Source # | |
Monad m => StringTree (MONAD m) Source # | |
Defined in Language.Syntactic.Constructs.Monad | |
Monad m => Render (MONAD m) Source # | |
Monad m => Eval (MONAD m) Source # | |
Defined in Language.Syntactic.Constructs.Monad evaluate :: MONAD m a -> Denotation a Source # | |
Monad m => Equality (MONAD m) Source # | |
Constrained (MONAD m) Source # | |
Monad m => EvalBind (MONAD m) Source # | |
(AlphaEq dom dom dom env, Monad m) => AlphaEq (MONAD m) (MONAD m) dom env Source # | |
type Sat (MONAD m) Source # | |
Defined in Language.Syntactic.Constructs.Monad |