pipes-2.1.0: Compositional pipelines

Safe HaskellSafe
LanguageHaskell2010

Control.IMonad.Trans.Free

Contents

Description

This module is the indexed version of Control.Monad.Trans.Free

Synopsis

Free monad transformers

Indexed free monad transformers lift the constructor signatures to the category of indexed Haskell functions: (:->).

Return ::   r :-> IFreeF f r x
Wrap   :: f x :-> IFreeF f r x

IFreeT :: m (IFreeF f r (IFreeT f m r)) :-> IFreeT f m r

data IFreeF f r x i Source #

Indexed equivalent to FreeF

Constructors

Return (r i) 
Wrap (f x i) 

data IFreeT f m r i Source #

Indexed equivalent to FreeT

Constructors

IFreeT 

Fields

Instances

(IFunctor * * f, IMonad * m) => IFunctor * * (IFreeT f m) Source # 

Methods

fmapI :: (IFreeT f m :-> a) b -> (k1 :-> f a) (f b) #

IFunctor * * f => IMonadTrans * (IFreeT f) Source # 

Methods

liftI :: IMonad (IFreeT f) m => (IFreeT f :-> m a) (t m a) #

(IFunctor * * f, IMonad * m) => IMonad * (IFreeT f m) Source # 

Methods

returnI :: a i -> m a i #

bindI :: (IFreeT f m :-> a) (m b) -> (IFreeT f m :-> m a) (m b) #

wrap :: IMonad m => f (IFreeT f m r) :-> IFreeT f m r Source #

Indexed equivalent to wrap

liftF :: (IFunctor f, IMonad m) => f r :-> IFreeT f m r Source #

Indexed equivalent to liftF