HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

Modulesyb-0.7.4Haskell98

Data.Generics.Twins

"Scrap your boilerplate" --- Generic programming in Haskell See http://www.cs.uu.nl/wiki/GenericProgramming/SYB. The present module provides support for multi-parameter traversal, which is also demonstrated with generic operations like equality.

Contents
  1. Generic folds and maps that also accumulate
  2. Mapping combinators for twin traversal
  3. Typical twin traversals
Synopsis
  • Packagesyb-0.7.4
  • Exports13
  • LanguageHaskell98
  • LicenceBSD-3-Clause
  • SourceTwins.hs

Generic folds and maps that also accumulate

valuegfoldlAccum
  1. :: Data d
  2. => forall e r. Data e => a -> c (e -> r) -> e -> (a, c r)
  3. -> forall g. a -> g -> (a, c g)
  4. -> a
  5. -> d
  6. -> (a, c d)

gfoldl with accumulation

valuegmapAccumQl
  1. :: Data d
  2. => r -> r' -> r
  3. -> r
  4. -> forall e. Data e => a -> e -> (a, r')
  5. -> a
  6. -> d
  7. -> (a, r)

gmapQl with accumulation

valuegmapAccumQr
  1. :: Data d
  2. => r' -> r -> r
  3. -> r
  4. -> forall e. Data e => a -> e -> (a, r')
  5. -> a
  6. -> d
  7. -> (a, r)

gmapQr with accumulation

Mapping combinators for twin traversal

Typical twin traversals

valuegeq :: Data a => a -> a -> Bool

Generic equality: an alternative to "deriving Eq"