haskell
This package contains the generics system described in the
"Scrap Your Boilerplate" papers (see http://www.cs.uu.nl/wiki/GenericProgramming/SYB).
It defines the 'Data' class of types permitting folding and unfolding
of constructor applications, instances of this class for primitive
types, and a variety of traversals.