hs-ix-0.1.0.0: Indexed monads

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Indexed.Trans.State

Documentation

newtype StateT f i j a Source #

Constructors

StateT 

Fields

Instances
Monad m => IxMonad (StateT m :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

ijoin :: StateT m i j (StateT m j k a) -> StateT m i k a Source #

ibind :: (a -> StateT m j k b) -> StateT m i j a -> StateT m i k b Source #

Monad m => IxApplicative (StateT m :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

ipure :: a -> StateT m k k a Source #

iap :: StateT m i j (a -> b) -> StateT m j k a -> StateT m i k b Source #

Monad m => Monad (StateT m k k) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

(>>=) :: StateT m k k a -> (a -> StateT m k k b) -> StateT m k k b #

(>>) :: StateT m k k a -> StateT m k k b -> StateT m k k b #

return :: a -> StateT m k k a #

fail :: String -> StateT m k k a #

Functor f => Functor (StateT f i j) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

fmap :: (a -> b) -> StateT f i j a -> StateT f i j b #

(<$) :: a -> StateT f i j b -> StateT f i j a #

MonadFix m => MonadFix (StateT m k k) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

mfix :: (a -> StateT m k k a) -> StateT m k k a #

Monad m => Applicative (StateT m k k) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

pure :: a -> StateT m k k a #

(<*>) :: StateT m k k (a -> b) -> StateT m k k a -> StateT m k k b #

liftA2 :: (a -> b -> c) -> StateT m k k a -> StateT m k k b -> StateT m k k c #

(*>) :: StateT m k k a -> StateT m k k b -> StateT m k k b #

(<*) :: StateT m k k a -> StateT m k k b -> StateT m k k a #

MonadPlus m => Alternative (StateT m k k) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

empty :: StateT m k k a #

(<|>) :: StateT m k k a -> StateT m k k a -> StateT m k k a #

some :: StateT m k k a -> StateT m k k [a] #

many :: StateT m k k a -> StateT m k k [a] #

MonadPlus m => MonadPlus (StateT m k k) Source # 
Instance details

Defined in Control.Monad.Indexed.Trans.State

Methods

mzero :: StateT m k k a #

mplus :: StateT m k k a -> StateT m k k a -> StateT m k k a #

mapStateT :: (f (a, j) -> g (b, k)) -> StateT f i j a -> StateT g i k b Source #

modify :: Applicative p => (i -> j) -> StateT p i j i Source #

modifyF :: Functor f => (i -> f j) -> StateT f i j i Source #

get :: Applicative p => StateT p k k k Source #

put :: Applicative p => j -> StateT p i j () Source #