Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module provides the proxy transformer equivalent of StateT
.
- 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 :: (Proxy p, Monad m) => s -> StateP s p a' a b' b m r -> p a' a b' b m r
- evalStateK :: (Proxy p, Monad m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m r
- execStateP :: (Proxy p, Monad m) => s -> StateP s p a' a b' b m r -> p a' a b' b m s
- execStateK :: (Proxy p, Monad m) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m s
- get :: (Proxy p, Monad m) => StateP s p a' a b' b m s
- put :: (Proxy p, Monad m) => s -> StateP s p a' a b' b m ()
- modify :: (Proxy p, Monad m) => (s -> s) -> StateP s p a' a b' b m ()
- gets :: (Proxy p, Monad 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 State
proxy transformer
ProxyTrans (StateP s) Source # | |
PFunctor (StateP s) Source # | |
MonadIOP p => MonadIOP (StateP s p) Source # | |
MonadPlusP p => MonadPlusP (StateP s p) Source # | |
Proxy p => Proxy (StateP s p) Source # | |
Proxy p => MonadTrans (StateP s p a' a b' b) Source # | |
Proxy p => MFunctor (StateP s p a' a b' b) Source # | |
(Proxy p, Monad m) => Monad (StateP s p a' a b' b m) Source # | |
(Proxy p, Monad m) => Functor (StateP s p a' a b' b m) Source # | |
(Proxy p, Monad m) => Applicative (StateP s p a' a b' b m) Source # | |
(MonadIOP p, MonadIO m) => MonadIO (StateP s p a' a b' b m) Source # | |
(MonadPlusP p, Monad m) => Alternative (StateP s p a' a b' b m) Source # | |
(MonadPlusP p, Monad 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 :: (Proxy p, Monad 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 :: (Proxy p, Monad 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 :: (Proxy p, Monad 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 :: (Proxy p, Monad 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