Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module provides the proxy transformer equivalent of StateT
.
Sequencing of computations is strict.
- newtype StateP s p a' a b' b m r = StateP {
- unStateP :: s -> p a' a b' b m (r, s)
- runStateP :: s -> StateP s p a' a b' b m r -> p a' a b' b m (r, s)
- runStateK :: s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m (r, s)
- evalStateP :: Monad (p a' a b' b m) => s -> StateP s p a' a b' b m r -> p a' a b' b m r
- evalStateK :: Monad (p a' a b' b m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m r
- execStateP :: Monad (p a' a b' b m) => s -> StateP s p a' a b' b m r -> p a' a b' b m s
- execStateK :: Monad (p a' a b' b m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m s
- get :: Monad (p a' a b' b m) => StateP s p a' a b' b m s
- put :: Monad (p a' a b' b m) => s -> StateP s p a' a b' b m ()
- modify :: Monad (p a' a b' b m) => (s -> s) -> StateP s p a' a b' b m ()
- gets :: Monad (p a' a b' b m) => (s -> r) -> StateP s p a' a b' b m r
StateP
newtype StateP s p a' a b' b m r Source #
The strict State
proxy transformer
ProxyTrans (StateP s) Source # | |
Channel p => Channel (StateP s p) Source # | |
MonadTrans (p a' a b' b) => MonadTrans (StateP s p a' a b' b) Source # | |
MFunctor (p a' a b' b) => MFunctor (StateP s p a' a b' b) Source # | |
Monad (p a' a b' b m) => Monad (StateP s p a' a b' b m) Source # | |
Monad (p a' a b' b m) => Functor (StateP s p a' a b' b m) Source # | |
Monad (p a' a b' b m) => Applicative (StateP s p a' a b' b m) Source # | |
MonadIO (p a' a b' b m) => MonadIO (StateP s p a' a b' b m) Source # | |
MonadPlus (p a' a b' b m) => Alternative (StateP s p a' a b' b m) Source # | |
MonadPlus (p a' a b' b m) => MonadPlus (StateP s p a' a b' b m) Source # | |
runStateP :: s -> StateP s p a' a b' b m r -> p a' a b' b m (r, s) Source #
Run a StateP
computation, producing the final result and state
runStateK :: s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m (r, s) Source #
Run a StateP
'K
'leisli arrow, procuding the final result and state
evalStateP :: Monad (p a' a b' b m) => s -> StateP s p a' a b' b m r -> p a' a b' b m r Source #
Evaluate a StateP
computation, but discard the final state
evalStateK :: Monad (p a' a b' b m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m r Source #
Evaluate a StateP
'K
'leisli arrow, but discard the final state
execStateP :: Monad (p a' a b' b m) => s -> StateP s p a' a b' b m r -> p a' a b' b m s Source #
Evaluate a StateP
computation, but discard the final result
execStateK :: Monad (p a' a b' b m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m s Source #
Evaluate a StateP
'K
'leisli arrow, but discard the final result