control-monad-free-0.3: A monad transformer for free monads.

Control.Monad.FreeT

Synopsis

Documentation

newtype FreeT f m a Source

FreeT f is a monad transformer for free monads over a functor f.

Constructors

FreeT 

Fields

runFreeT :: m (Either a (f (FreeT f m a)))
 

Instances

(Functor f, Monad m) => MonadFree f (FreeT f m) 
Functor f => MonadTrans (FreeT f) 
(Functor f, Monad m) => Monad (FreeT f m) 
(Functor f, Functor m) => Functor (FreeT f m) 

class (Functor f, Monad m) => MonadFree f m whereSource

Methods

free :: m a -> m (Either a (f (m a)))Source

Instances

(Functor f, Monad m) => MonadFree f (FreeT f m)