kan-extensions-1.9.0: Kan extensions, the Yoneda lemma, and (co)density (co)monads

Portabilitynon-portable (rank-2 polymorphism)
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Monad.Free.Church

Description

Free Monads for Less

http:comonad.comreader2011free-monads-for-less-2

Documentation

newtype F f a Source

Constructors

F 

Fields

runF :: forall r. (a -> r) -> (f r -> r) -> r
 

Instances

MonadTrans F 
Functor f => MonadFree f (F f) 
MonadReader e m => MonadReader e (F m) 
MonadState s m => MonadState s (F m) 
MonadWriter w m => MonadWriter w (F m) 
Monad (F f) 
Functor (F f) 
MonadPlus f => MonadPlus (F f) 
Applicative (F f) 
Alternative f => Alternative (F f) 
MonadCont m => MonadCont (F m) 

improve :: Functor f => (forall m. MonadFree f m => m a) -> Free f aSource

fromF :: MonadFree f m => F f a -> m aSource

toF :: Functor f => Free f a -> F f aSource

liftF :: Functor f => f a -> F f aSource

retract :: Monad m => F m a -> m aSource