regular

Generic programming library for regular datatypes.

Version on this page:0.3.4.3
LTS Haskell 2.22:0.3.4.4@rev:1
Stackage Nightly 2015-05-19:0.3.4.4@rev:1
Latest on Hackage:0.3.4.4@rev:1

See all snapshots regular appears in

BSD-3-Clause licensed by Jose Pedro Magalhaes
Maintained by [email protected]
This version can be pinned in stack with:regular-0.3.4.3@sha256:cdedcc8a24869f5e19fa90cf2637a3f0a4521fecddac19c890bc37adeaaeab17,2655

Module documentation for 0.3.4.3

  • Generics
    • Generics.Regular
      • Generics.Regular.Base
      • Generics.Regular.Constructor
      • Generics.Regular.Functions
        • Generics.Regular.Functions.ConNames
        • Generics.Regular.Functions.Crush
        • Generics.Regular.Functions.Eq
        • Generics.Regular.Functions.Fold
        • Generics.Regular.Functions.GMap
        • Generics.Regular.Functions.LR
        • Generics.Regular.Functions.Read
        • Generics.Regular.Functions.Show
        • Generics.Regular.Functions.Zip
      • Generics.Regular.Selector
      • Generics.Regular.TH

This package provides generic functionality for regular datatypes. Regular datatypes are recursive datatypes such as lists, binary trees, etc. This library cannot be used with mutually recursive datatypes or with nested datatypes. The multirec library [1] can deal with mutually recursive datatypes.

This library has been described in the paper:

  • A Lightweight Approach to Datatype-Generic Rewriting. Thomas van Noort, Alexey Rodriguez, Stefan Holdermans, Johan Jeuring, Bastiaan Heeren. ACM SIGPLAN Workshop on Generic Programming 2008.

More information about this library can be found at http://www.cs.uu.nl/wiki/GenericProgramming/Regular.

[1] http://hackage.haskell.org/package/multirec