mtl-c-0.1.1: Very strict CPS'd transformers

Safe HaskellTrustworthy
LanguageHaskell98

Control.Monad.State.CPS

Documentation

newtype StateT s m a Source #

Constructors

StateT 

Fields

  • unStateT :: forall r. s -> (a -> s -> m r) -> m r
     

Instances

MonadReader e m => MonadReader e (StateT s m) Source # 

Methods

ask :: StateT s m e #

local :: (e -> e) -> StateT s m a -> StateT s m a #

reader :: (e -> a) -> StateT s m a #

MonadState s (StateT s m) Source # 

Methods

get :: StateT s m s #

put :: s -> StateT s m () #

state :: (s -> (a, s)) -> StateT s m a #

MonadTrans (StateT s) Source # 

Methods

lift :: Monad m => m a -> StateT s m a #

Monad (StateT s m) Source # 

Methods

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

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

return :: a -> StateT s m a #

fail :: String -> StateT s m a #

Functor (StateT s m) Source # 

Methods

fmap :: (a -> b) -> StateT s m a -> StateT s m b #

(<$) :: a -> StateT s m b -> StateT s m a #

MonadFix m => MonadFix (StateT s m) Source # 

Methods

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

Applicative (StateT s m) Source # 

Methods

pure :: a -> StateT s m a #

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

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

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

MonadIO m => MonadIO (StateT s m) Source # 

Methods

liftIO :: IO a -> StateT s m a #

MonadCont m => MonadCont (StateT s m) Source # 

Methods

callCC :: ((a -> StateT s m b) -> StateT s m a) -> StateT s m a #

runStateT :: Monad m => StateT s m a -> s -> m (a, s) Source #

evalStateT :: Monad m => StateT s m a -> s -> m a Source #

execStateT :: Monad m => StateT s m a -> s -> m s Source #

mapStateT :: (Monad m, Monad n) => (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b Source #

runState :: State s a -> s -> (a, s) Source #

evalState :: State s a -> s -> a Source #

execState :: State s a -> s -> s Source #