| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Control.Monad.Freer
Description
This module defines the freer monad Freer, which allows manipulating
effectful computations algebraically.
It is unlikely you need this, except maybe to define your own backends or something. We may hide/remove it in future versions.
Documentation
Freer monads.
A freer monad Freer f a represents an effectful computation that returns a
value of type a. The parameter f :: * -> * is a effect signature that
defines the effectful operations allowed in the computation. Freer f a is
called a freer monad in that it's a Monad given any f.
Constructors
| Return :: a -> Freer f a | A pure computation. |
| Do :: f b -> (b -> Freer f a) -> Freer f a | An effectful computation where the first argument |
interpFreer :: Monad m => (forall b. f b -> m b) -> Freer f a -> m a Source #
Interpret the effects in a freer monad in terms of another monad.