Monads having fixed points with a 'knot-tying' semantics. Instances of MonadFix should satisfy the following laws:
- Purity
mfix (Control.Monad.return. h) =Control.Monad.return(fix h)- Left shrinking (or Tightening)
mfix (\x -> a >>= \y -> f x y) = a >>= \y -> mfix (\x -> f x y)- Sliding
mfix (Control.Monad.liftMh . f) =Control.Monad.liftMh (mfix (f . h)), for strict
h.
- Nesting
This class is used in the translation of the recursive do notation
supported by GHC and Hugs.
Instances22MonadFix, …
MonadFix NonEmptyDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityMonadFix FirstDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix LastDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix DownDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix Par1Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix SoloDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix IODefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix []Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpMonadFix (Either e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix (ST s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (Ap f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (Rec1 f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix ((->) r)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.Fix(MonadFix f, MonadFix g) => MonadFix (f :*: g)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFix f => MonadFix (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.Fix