uniplate

Help writing simple, concise and fast generic operations.

http://community.haskell.org/~ndm/uniplate/

Version on this page:1.6.12
LTS Haskell 23.1:1.6.13@rev:1
Stackage Nightly 2024-12-22:1.6.13@rev:1
Latest on Hackage:1.6.13@rev:1

See all snapshots uniplate appears in

BSD-3-Clause licensed and maintained by Neil Mitchell
This version can be pinned in stack with:uniplate-1.6.12@sha256:9fdcbc4fcdd6de55b86013414198e1d32a41d7e29a104213b6737ead310b1029,3407

Module documentation for 1.6.12

  • Data
    • Data.Generics
      • Data.Generics.Biplate
      • Data.Generics.Compos
      • Data.Generics.PlateData
      • Data.Generics.PlateDirect
      • Data.Generics.PlateTypeable
      • Data.Generics.SYB
      • Data.Generics.Str
      • Data.Generics.Uniplate
        • Data.Generics.Uniplate.Data
          • Data.Generics.Uniplate.Data.Instances
        • Data.Generics.Uniplate.DataOnly
        • Data.Generics.Uniplate.Direct
        • Data.Generics.Uniplate.Operations
        • Data.Generics.Uniplate.Typeable
        • Data.Generics.Uniplate.Zipper
      • Data.Generics.UniplateOn
      • Data.Generics.UniplateStr
      • Data.Generics.UniplateStrOn

Uniplate is library for writing simple and concise generic operations. Uniplate has similar goals to the original Scrap Your Boilerplate work, but is substantially simpler and faster. The Uniplate manual is available at http://community.haskell.org/~ndm/darcs/uniplate/uniplate.htm.

To get started with Uniplate you should import one of the three following modules:

  • Data.Generics.Uniplate.Data - to quickly start writing generic functions. Most users should start by importing this module.

  • Data.Generics.Uniplate.Direct - a replacement for Data.Generics.Uniplate.Data with substantially higher performance (around 5 times), but requires writing instance declarations.

  • Data.Generics.Uniplate.Operations - definitions of all the operations defined by Uniplate. Both the above two modules re-export this module.

In addition, some users may want to make use of the following modules:

  • Data.Generics.Uniplate.Zipper - a zipper built on top of Uniplate instances.

  • Data.Generics.SYB - users transitioning from the Scrap Your Boilerplate library.

  • Data.Generics.Compos - users transitioning from the Compos library.

  • Data.Generics.Uniplate.DataOnly - users making use of both Data and Direct to avoid getting instance conflicts.