Module
Control.Monad.State.Class
- Package
- purescript-transformers
- Repository
- purescript/purescript-transformers
This module defines the MonadState
type class and its instances.
#MonadState Source
class (Monad m) <= MonadState s m | m -> s where
The MonadState s
type class represents those monads which support a single piece of mutable
state of type s
.
state f
updates the state using the functionf
.
An implementation is provided for StateT
, and for other monad transformers
defined in this library.
Laws:
do { get ; get } = get
do { put x ; put y } = put y
do { put x ; get } = put x $> x
do { s <- get ; put s } = pure unit
Members
#get Source
get :: forall s m. MonadState s m => m s
Get the current state.
#gets Source
gets :: forall a m s. MonadState s m => (s -> a) -> m a
Get a value which depends on the current state.
#put Source
put :: forall s m. MonadState s m => s -> m Unit
Set the state.
#modify Source
modify :: forall m s. MonadState s m => (s -> s) -> m s
Modify the state by applying a function to the current state. The returned value is the new state value.
- Modules
- Control.
Comonad. Env - Control.
Comonad. Env. Class - Control.
Comonad. Env. Trans - Control.
Comonad. Store - Control.
Comonad. Store. Class - Control.
Comonad. Store. Trans - Control.
Comonad. Traced - Control.
Comonad. Traced. Class - Control.
Comonad. Traced. Trans - Control.
Comonad. Trans. Class - Control.
Monad. Cont - Control.
Monad. Cont. Class - Control.
Monad. Cont. Trans - Control.
Monad. Error. Class - Control.
Monad. Except - Control.
Monad. Except. Trans - Control.
Monad. List. Trans - Control.
Monad. Maybe. Trans - Control.
Monad. RWS - Control.
Monad. RWS. Trans - Control.
Monad. Reader - Control.
Monad. Reader. Class - Control.
Monad. Reader. Trans - Control.
Monad. State - Control.
Monad. State. Class - Control.
Monad. State. Trans - Control.
Monad. Trans. Class - Control.
Monad. Writer - Control.
Monad. Writer. Class - Control.
Monad. Writer. Trans