rev-state-0.1.2: Reverse State monad transformer

Safe HaskellSafe
LanguageHaskell98

Control.Monad.Trans.RevState

Contents

Synopsis

Monad Transformer

newtype StateT s m a #

Constructors

StateT 

Fields

Instances

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

Methods

get :: StateT s m s #

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

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

MonadTrans (StateT s) # 

Methods

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

MonadFix m => Monad (StateT s m) # 

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 m => Functor (StateT s m) # 

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) # 

Methods

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

MonadFix m => Applicative (StateT s m) # 

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 #

evalStateT :: Functor m => StateT s m a -> s -> m a #

execStateT :: Functor m => StateT s m a -> s -> m s #

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

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

Monad

type State s = StateT s Identity #

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

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

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

mapState :: ((a, s) -> (b, s)) -> State s a -> State s b #

withState :: (s -> s) -> State s a -> State s a #

Primitives and basic combinators

get :: Applicative m => StateT s m s #

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

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

gets :: Applicative m => (s -> a) -> StateT s m a #

modify :: Applicative m => (s -> s) -> StateT s m () #