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.1@sha256:7aee2c0633632479cef93c8000befd5bc950ba7c329d69e918ca520944164e27,1645

Module documentation for 0.3.1

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



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