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.
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
* @<https://hackage.haskell.org/package/basic-sop basic-sop>@ basic examples,
* @<https://hackage.haskell.org/package/pretty-sop pretty-sop>@ generic pretty printing,
* @<https://hackage.haskell.org/package/lens-sop lens-sop>@ generically computed lenses,
* @<https://hackage.haskell.org/package/json-sop json-sop>@ generic JSON conversions.
A detailed description of the ideas behind this library is provided by
* Edsko de Vries and Andres Löh.
<http://www.andres-loeh.de/TrueSumsOfProducts True Sums of Products>.
Workshop on Generic Programming (WGP) 2014.