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