Safe Haskell | None |
---|
A supervisor monad that explore the execution tree of an internal monad and define extra behaviours thanks to flexible instance definitions for each particular purpose. It can inject new behaviours for backtracking, trace generation, testing, transaction rollbacks etc The supervisor monad is used in the package MFlow to control the routing, tracing, state management, back button management and navigation in general
Documentation
The internal computation can be reexecuted, proceed forward or backward
The supervisor add a Control wrapper that is interpreted by the monad instance
class MonadState s m => Supervise s m whereSource
The supervise class add two general modifiers that can be applied:
:: s | |
-> m () | Called before initiating backtracking in a control point When the computation goes back, by default the state is kepth. This procedure can change that behaviour. The state passed is the one before the computation was executed. |