`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.

transFInst :: MonadFix m => Inst MonadF (t m)Source

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.