BSD-3-Clause licensed by Anton Kholomiov, Edward Kmett, Oleg Grenrus
Maintained by <[email protected]>
This version can be pinned in stack with:data-fix-0.3.2@sha256:cd7d6ff8b68aca3b51d8116870fc8ccdbc557989562cd3d5c941e4f0b7bc5af1,1734

Module documentation for 0.3.2

Fixpoint types and recursion schemes. If you define your AST as fixpoint type, you get fold and unfold operations for free.

Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel



  • Add (un)wrapFix/Mu/Nu
  • Support transformers-0.6


  • Update bounds for GHC-9.0


  • Rename cata, ana and hylo into foldFix, unfoldFix and `refold. Old names are now deprecated, and will be eventually removed. Similarly, rename monadic variants.
  • Add hoistFix and hoistFix' function.
  • Add Hashable and NFData instance. Latter is available only with deepseq >=, which provides NFData1 type-class
  • Change Eq, Ord, Show and Read instances to use Eq1, Ord1, Show1 and Read1 instances of a base functor.
  • Add least and greatest fixed point types, Mu and Nu.
  • Drop requirement for Applicative m in monadic combinators, Monad m is enough.
  • Remove ~> alias for refold (hylo).
  • Extend the GHC support window. There is nothing magical in this package.
  • Mark Data.Fix as Trustworthy (Safe Haskell)
  • Make refold (and refoldM) more efficient. This results in different effect ordering for refoldM.