Portability | needs DoRec |
---|---|
Stability | experimental |
Maintainer | Luke Palmer <lrpalmer@gmail.com> |
Safe Haskell | Safe-Inferred |
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
BackwardStateT | |
|
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