MonadFix
transformers. There are also Monad
and MonadPlus
transformes, see the corresponding modules.
Note that each MonadFix
transformer is also a Monad
transformer.
Documentation
MonadF m
is actually a free MonadFix
generated by m
. MonadF
is a monad itself (on the (* -> *)
category), as usually happens with free structures.
class TransM t => TransF t whereSource
A composable MonadFix
transformer.
You shoudn't (and probably can't) use *anything* except for
, defined in this very module, as instF
transFInst
.
If you define instance TransF T where transFInst = instF
, then you would also need to define instance MonadFix m => MonadFix (T m)
somewhere in your code.
transFInst :: MonadFix m => Inst MonadF (t m)Source