| Portability | needs DoRec |
|---|---|
| Stability | experimental |
| Maintainer | Luke Palmer <lrpalmer@gmail.com> |
| Safe Haskell | Safe-Inferred |
Control.Monad.Trans.BackwardState
Description
Backward state monad and transformer, in which m >> n passes the incoming
state to n, then passes n's resulting state to m. This can only work
lazily.
Documentation
type BackwardState s = BackwardStateT s IdentitySource
runBackwardState :: BackwardState s a -> s -> (a, s)Source
evalBackwardState :: BackwardState s a -> s -> aSource
execBackwardState :: BackwardState s a -> s -> sSource
newtype BackwardStateT s m a Source
Constructors
| BackwardStateT | |
Fields
| |
Instances
| MonadTrans (BackwardStateT s) | |
| MonadFix m => Monad (BackwardStateT s m) | |
| Functor m => Functor (BackwardStateT s m) | |
| (Monad (BackwardStateT s m), MonadFix m) => MonadFix (BackwardStateT s m) | |
| (Monad (BackwardStateT s m), MonadFix m, MonadPlus m) => MonadPlus (BackwardStateT s m) | |
| (Functor (BackwardStateT s m), Functor m, MonadFix m) => Applicative (BackwardStateT s m) | |
| (Applicative (BackwardStateT s m), Functor m, MonadFix m, MonadPlus m) => Alternative (BackwardStateT s m) | |
| (Monad (BackwardStateT s m), MonadFix m, MonadIO m) => MonadIO (BackwardStateT s m) |
evalBackwardStateT :: Functor m => BackwardStateT s m a -> s -> m aSource
execBackwardStateT :: Functor m => BackwardStateT s m a -> s -> m sSource
get :: Monad m => BackwardStateT s m sSource
put :: Monad m => s -> BackwardStateT s m ()Source
modify :: Monad m => (s -> s) -> BackwardStateT s m ()Source