generics-sop: Generic Programming using True Sums of Products

[ bsd3, generics, library ] [ Propose Tags ]

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:

A detailed description of the ideas behind this library is provided by the paper:

Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.1, 0.1.1.1, 0.1.1.2, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0, 0.2.4.0, 0.2.5.0, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.4.0.0, 0.4.0.1, 0.5.0.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.9 && <5), ghc-prim (>=0.3 && <0.6), sop-core (==0.5.0.*), template-haskell (>=2.8 && <2.16) [details]
License BSD-3-Clause
Author Edsko de Vries <edsko@well-typed.com>, Andres Löh <andres@well-typed.com>
Maintainer andres@well-typed.com
Revised Revision 1 made by phadej at Tue Aug 27 12:24:28 UTC 2019
Category Generics
Source repo head: git clone https://github.com/well-typed/generics-sop
Uploaded by AndresLoeh at Thu May 9 20:01:20 UTC 2019
Distributions Arch:0.5.0.0, Debian:0.3.2.0, Fedora:0.4.0.1, LTSHaskell:0.4.0.1, NixOS:0.5.0.0, Stackage:0.4.0.1
Downloads 24188 total (819 in the last 30 days)
Rating 2.75 (votes: 7) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-05-09 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees