Generic Programming using True Sums of Products.
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.
Since version 0.4.0.0, this package is now based on sop-core
. The core package contains all the functionality of n-ary sums and products, whereas this package provides the datatype-generic programming support on top.
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.