The Church-encoded free monad for a functor f.
It is asymptotically more efficient to use (>>=) for F than it is to (>>=) with Free.
https://ekmett.github.io/reader/2011/free-monads-for-less-2/
Instances18MonadTrans, MonadReader, MonadState, MonadWriter, MonadFree, Monad, …
MonadTrans FDefined in free-5.2 · Control.Monad.Free.ChurchMonadReader e m => MonadReader e (F m)Defined in free-5.2 · Control.Monad.Free.ChurchMonadState s m => MonadState s (F m)Defined in free-5.2 · Control.Monad.Free.ChurchMonadWriter w m => MonadWriter w (F m)Defined in free-5.2 · Control.Monad.Free.ChurchFunctor f => MonadFree f (F f)Defined in free-5.2 · Control.Monad.Free.ChurchMonad (F f)Defined in free-5.2 · Control.Monad.Free.ChurchFunctor (F f)Defined in free-5.2 · Control.Monad.Free.ChurchMonadFix (F f)Defined in free-5.2 · Control.Monad.Free.ChurchApplicative (F f)Defined in free-5.2 · Control.Monad.Free.ChurchFoldable f => Foldable (F f)Defined in free-5.2 · Control.Monad.Free.ChurchTraversable f => Traversable (F f)Defined in free-5.2 · Control.Monad.Free.ChurchAlternative f => Alternative (F f)Defined in free-5.2 · Control.Monad.Free.ChurchThis violates the Alternative laws, handle with care.
MonadPlus f => MonadPlus (F f)Defined in free-5.2 · Control.Monad.Free.ChurchThis violates the MonadPlus laws, handle with care.
Foldable1 f => Foldable1 (F f)Defined in free-5.2 · Control.Monad.Free.ChurchMonadCont m => MonadCont (F m)Defined in free-5.2 · Control.Monad.Free.ChurchApply (F f)Defined in free-5.2 · Control.Monad.Free.ChurchBind (F f)Defined in free-5.2 · Control.Monad.Free.ChurchTraversable1 f => Traversable1 (F f)Defined in free-5.2 · Control.Monad.Free.Church