Safe Haskell | None |
---|---|
Language | Haskell98 |
Documentation
class Effect (m :: k -> * -> *) where Source #
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 |
type Plus m (f :: k) (g :: k) :: k Source #
Cominbing effects of two subcomputations |
type Inv m (f :: k) (g :: k) :: 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 #
Effect Nat Counter Source # | |
Effect [*] State Source # | |
Effect [*] Reader Source # | |
Effect [*] WriteOnce Source # | |
Effect [Mapping Symbol *] Reader Source # | |
Effect [Mapping Symbol *] Writer Source # | |
Effect (Maybe *) Update Source # | |
Effect * Counter Source # | |
Effect * IMaybe Source # | |
Effect * Vector Source # | |
Monad m => Effect * (Monad m) Source # | |
Effect (Morph * *) T Source # | |