!!\SafeSafeNThis function combines two different monadic effects, where one of the effects is a reader effect and the other is a producing effect.This version results in the reader monad's inner effect to be wrapped around the producing effect. This requires the Reader inner effect to be an MFunctor on Identity.This can enable past-Dependence. Elm has foldp : (a -> state -> state) -> state -> Signal a -> Signal state This is equivalent to a creating a StateT state (Signal m) () is a more general form of StateT state (Signal m) () where given a reader monad to transform "a" to "c" with effects, and an "as" monad that produces "a"s with other effects, run the result of "as" through the reader monad to produce "c"s with both effects. ; runReaderM :: Monad m => Reader a (State s) c -> m a -> StateT s m c runReaderM :: Reader a (State s) c -> Signal STM a -> StateT state (Signal STM) c runReaderM :: Reader a (State s) c -> Pipes.Concurrent.Input a -> StateT state Pipes.Concurrent.Input c An alternate form of runReaderM where the producing effect is wrapped around the reader monad's inner effect. This requires the producing effect to be an MFunctor on Identity.SafeThe problem with StateT s (MaybeT m) aH is that on failure, the original state is lost. A more useful type is MaybeT (StateT s m) a; which at least keeps the original input state on failure.The problem with StateT s (ExceptT e m) aH is that on failure, the original state is lost. A more useful type is ExceptT e (StateT s m) a; which at least keeps the original input state on failure.Safe!FThe problem with StateT s (MaybeT m) aH is that on failure, the original state is lost. A more useful type is MaybeT (StateT s m) a; which at least keeps the original input state on failure.The problem with StateT s (ExceptT e m) aH is that on failure, the original state is lost. A more useful type is ExceptT e (StateT s m) a; which at least keeps the original input state on failure.  *alternators-0.1.2.0-GuyykwLiDF65zmJX6LUKPq Control.Monad.Trans.Maybe.Extras!Control.Monad.Trans.Reader.Extras%Control.Monad.Trans.State.Lazy.Extras'Control.Monad.Trans.State.Strict.Extras fromMaybeT runReaderM runReaderM' maybeState exceptState