A library to support the definition of generic functions. Datatypes are viewed in a uniform, structured way: the choice between constructors is represented using an n-ary sum, and the arguments of each constructor are represented using an n-ary product.
This is the development repository. For releases, look on Hackage.
The module Generics.SOP
is the main module of this library
and contains more detailed documentation.
Examples of using this library are provided by the following packages:
- basic-sop basic examples,
- pretty-sop generic pretty printing,
- lens-sop generically computed lenses,
- json-sop generic JSON conversions.
A detailed description of the ideas behind this library is provided by the paper:
- Edsko de Vries and Andres Löh. True Sums of Products. Workshop on Generic Programming (WGP) 2014.