Safe Haskell | None |
---|---|

Language | Haskell98 |

# Documentation

Specifies "parametric effect monads" which are essentially monads but
annotated by a type-level monoid formed by `Plus`

and `Unit`

Effect of a trivially effectful computation |

Cominbing effects of two subcomputations |

type Inv m f g :: Constraint Source

return :: a -> m (Unit m) a Source

Effect-parameterised version of `return`

. Annotated with the 'Unit m' effect,
denoting pure compuation

(>>=) :: Inv m f g => m f a -> (a -> m g b) -> m (Plus m f g) b Source

Effect-parameterise version of `>>=`

(bind). Combines
two effect annotations `f`

and `g`

on its parameter computations into `Plus`

(>>) :: Inv m f g => m f a -> m g b -> m (Plus m f g) b Source