Monads having fixed points with a 'knot-tying' semantics. Instances of MonadFix should satisfy the following laws:
- Purity
- Left shrinking (or Tightening)
mfix (\x -> a >>= \y -> f x y) = a >>= \y -> mfix (\x -> f x y)- Sliding
mfix (liftM h . f) = liftM h (mfix (f . h)), for strict
h.
- Nesting
This class is used in the translation of the recursive do notation
supported by GHC and Hugs.
Instances28MonadFix, …
MonadFix ComplexDefined in base-4.20.2.0 · Data.ComplexMonadFix FirstDefined in base-4.20.2.0 · Data.SemigroupMonadFix LastDefined in base-4.20.2.0 · Data.SemigroupMonadFix MaxDefined in base-4.20.2.0 · Data.SemigroupMonadFix MinDefined in base-4.20.2.0 · Data.SemigroupMonadFix 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 (Product f g)Defined in base-4.20.2.0 · Data.Functor.Product(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