|
|
|
|
|
|
| Synopsis |
|
| module Control.Monad | | | class (Functor f, Monad m) => MonadFree f m where | | | | | | isPure :: Free t t1 -> Bool | | | isImpure :: Free t t1 -> Bool | | | foldFree :: Functor f => (a -> b) -> (f b -> b) -> Free f a -> b | | | foldFreeM :: (Functor f, Traversable f, Monad m) => (a -> m b) -> (f b -> m b) -> Free f a -> m b | | | evalFree :: (a -> b) -> (f (Free f a) -> b) -> Free f a -> b | | | mapFree :: (Functor f, Functor g) => (forall a. f a -> g a) -> Free f a -> Free g a | | | mapFreeM :: (Traversable f, Functor g, Monad m) => (forall a. f a -> m (g a)) -> Free f a -> m (Free g a) | | | newtype FreeT f m a = FreeT {} | | | foldFreeT :: (Traversable f, Monad m) => (a -> m b) -> (f b -> m b) -> FreeT f m a -> m b | | | foldFreeT' :: (Traversable f, Monad m) => (a -> b) -> (f b -> b) -> FreeT f m a -> m b | | | mapFreeT :: (Functor f, Functor m) => (forall a. m a -> m' a) -> FreeT f m a -> FreeT f m' a | | | trans :: (Functor f, Monad m) => Free f a -> FreeT f m a | | | trans' :: (Functor f, Monad m) => m (Free f a) -> FreeT f m a | | | untrans :: (Traversable f, Monad m) => FreeT f m a -> m (Free f a) | | | liftFree :: (Functor f, Monad m) => (a -> Free f b) -> a -> FreeT f m b |
|
|
| Documentation |
|
| module Control.Monad |
|
| Free Monads
|
|
|
| This type class generalizes over encodings of Free Monads.
| | | Methods | | | :: | | | => m a | Opens a computation and allows to observe the side effects
| | -> m (Either a (f (m a))) | |
| | | | :: | | | => f (m a) | Wraps a side effect into a monadic computation
| | -> m a | |
|
| | Instances | |
|
|
|
| Constructors | | Impure (f (Free f a)) | | | Pure a | |
| Instances | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Free Monad Transformers
|
|
|
| Constructors | | Instances | |
|
|
|
|
|
|
|
|
| Translate between Free monad and Free monad transformer computations
|
|
|
|
|
|
|
|
|
|
| Produced by Haddock version 2.6.0 |