State +Control.Monad.Trans +transformers

module Control.Monad.Trans.State
transformers Control.Monad.Trans.State
State monads, passing an updatable state through a computation. Some computations may not require the full power of state transformers: * For a read-only state, see Control.Monad.Trans.Reader. * To accumulate a value without using it on the way, see Control.Monad.Trans.Writer. This version is lazy; for a strict version, see Control.Monad.Trans.State.Strict, which has the same interface.
type State s = StateT s Identity
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
A state monad parameterized by the type s of the state to carry. The return function leaves the state unchanged, while >>= uses the final state of the first computation as the initial state of the second.
StateT :: (s -> m (a, s)) -> StateT s m a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
newtype StateT s m a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
A state transformer monad parameterized by: * s - The state. * m - The inner monad. The return function leaves the state unchanged, while >>= uses the final state of the first computation as the initial state of the second.
state :: (Monoid w, Monad m) => (s -> (a, s)) -> RWST r w s m a
transformers Control.Monad.Trans.RWS.Lazy, transformers Control.Monad.Trans.RWS.Strict
Construct a state monad computation from a state transformer function.
state :: Monad m => (s -> (a, s)) -> StateT s m a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Construct a state monad computation from a function. (The inverse of runState.)
evalState :: State s a -> s -> a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Evaluate a state computation with the given initial state and return the final value, discarding the final state. *  m s = fst (runState m >  
evalStateT :: Monad m => StateT s m a -> s -> m a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Evaluate a state computation with the given initial state and return the final value, discarding the final state. *  m s = liftM fst > (runStateT m  
execState :: State s a -> s -> s
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Evaluate a state computation with the given initial state and return the final state, discarding the final value. *  m s = snd (runState m >  
execStateT :: Monad m => StateT s m a -> s -> m s
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Evaluate a state computation with the given initial state and return the final state, discarding the final value. *  m s = liftM snd > (runStateT m  
mapState :: ((a, s) -> (b, s)) -> State s a -> State s b
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Map both the return value and final state of a computation using the given function. *  (mapState f m) = f . runState
mapStateT :: (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Map both the return value and final state of a computation using the given function. *  (mapStateT f m) = f . > runStateT
runState :: State s a -> s -> (a, s)
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
Unwrap a state monad computation as a function. (The inverse of state.)
runStateT :: StateT s m a -> s -> m (a, s)
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
withState :: (s -> s) -> State s a -> State s a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
withState f m executes action m on a state modified by applying f. *  f m = modify f >>
withStateT :: (s -> s) -> StateT s m a -> StateT s m a
transformers Control.Monad.Trans.State.Lazy, transformers Control.Monad.Trans.State.Strict
withStateT f m executes action m on a state modified by applying f. *  f m = modify f >>