|
Control.Monad.State.Class | Portability | non-portable (multi-param classes, functional dependencies) | Stability | experimental | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
MonadState class.
This module is 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 |
|
|
|
|
MonadState class
|
|
class Monad m => MonadState s m | m -> s where |
get returns the state from the internals of the monad.
put replaces the state inside the monad.
| | Methods | get :: m s | | put :: s -> m () |
| | Instances | |
|
|
modify :: MonadState s m => (s -> s) -> m () |
Monadic state transformer.
Maps an old state to a new state inside a state monad.
The old state is thrown away.
Main> :t modify ((+1) :: Int -> Int)
modify (...) :: (MonadState Int a) => a ()
This says that modify (+1) acts over any
Monad that is a member of the MonadState class,
with an Int state.
|
|
gets :: MonadState s m => (s -> a) -> m a |
Gets specific component of the state, using a projection function
supplied.
|
|
Produced by Haddock version 0.8 |