| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Control.Effect
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
Associated Types
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 #
Methods
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 #
Instances
| 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 # | |