Uniplate is library for writing simple and concise generic operations.
Uniplate is a simple, concise and fast generics library. To expand on that sentence:
- A generics library is one which allows you to write functions that operate over a data structure without tying down all aspects of the data structure. In particular, when writing an operation, you don't need to give a case for each constructor, and you don't have to state which fields are recursive.
- Uniplate is the simplest generics library. Using Uniplate is within the reach of all Haskell programmers.
- Uniplate is more concise than any other generics library.
- Uniplate is fast, not always the absolute fastest, but massively faster than many generics libraries.
- Uniplate is also less powerful than some other generics libraries, but if it does the job, you should use it.
The Uniplate library can be installed with the standard sequence of cabal commands:
cabal update
cabal install uniplate
Full documentation: http://community.haskell.org/~ndm/darcs/uniplate/uniplate.htm