Haskell Core Libraries (base package)ContentsIndex
Control.Monad.State
Portability non-portable ( mulit-param classes, functional dependencies )
Stability experimental
Maintainer libraries@haskell.org
Description

State monads.

Inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://www.cse.ogi.edu/~mpj) Advanced School of Functional Programming, 1995.

Synopsis
class Monad m => MonadState s m | m -> s where
get :: m s
put :: s -> m ()
modify :: MonadState s m => (s -> s) -> m ()
gets :: MonadState s m => (s -> a) -> m a
newtype State s a = State {
runState :: (s -> (a, s))
}
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
newtype StateT s m a = StateT {
runStateT :: (s -> m (a, s))
}
runStateT :: StateT s m a -> s -> m (a, s)
evalStateT :: Monad m => StateT s m a -> s -> m a
execStateT :: Monad 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
module Control.Monad
module Control.Monad.Fix
module Control.Monad.Trans
Produced by Haddock version 0.6