indexed-free-0.3.1: indexed monads for free

Safe HaskellNone

Control.Monad.Indexed.Trans.Free

Documentation

data IxFreeF f m i j a whereSource

Constructors

Pure :: a -> IxFreeF f m i i a 
Free :: f i j (IxFreeT f m j k a) -> IxFreeF f m i k a 

newtype IxFreeT f m i j a Source

Constructors

IxFreeT 

Fields

runIxFreeT :: m (IxFreeF f m i j a)
 

Instances

(Monad m, IxFunctor f) => IxMonadFree f (IxFreeT f m) 
(Monad m, IxFunctor f) => IxMonad (IxFreeT f m) 
(Monad m, IxFunctor f) => IxFunctor (IxFreeT f m) 
(Monad m, IxFunctor f) => IxApplicative (IxFreeT f m) 
(Monad m, IxFunctor f) => IxPointed (IxFreeT f m) 
(Monad m, IxFunctor f) => Monad (IxFreeT f m i i) 
(Monad m, IxFunctor f) => Functor (IxFreeT f m i i) 
(Monad m, IxFunctor f) => Applicative (IxFreeT f m i i) 

transIxFreeT :: (IxFunctor g, Monad m) => (forall i j x. f i j x -> g i j x) -> IxFreeT f m i j a -> IxFreeT g m i j aSource