generic-deriving alternatives and similar packages
Based on the "generic" category.
Alternatively, view generic-deriving alternatives based on common mentions on social networks and blogs.
Override instances used by Haskell's generic derivation
Do you think we are missing an alternative of generic-deriving or a related project?
generic-deriving: Generic programming library for generalised deriving
This package provides functionality for generalising the deriving mechanism in Haskell to arbitrary classes. It was first described in the paper:
- A generic deriving mechanism for Haskell. Jose Pedro Magalhaes, Atze Dijkstra, Johan Jeuring, and Andres Loeh. Haskell'10.
The current implementation integrates with the new GHC Generics. See http://www.haskell.org/haskellwiki/GHC.Generics for more information. Template Haskell code is provided for supporting older GHCs.
This library is organized as follows:
Generics.Deriving.Basedefines the core functionality for GHC generics, including the
Generic(1)classes and representation data types. On modern versions of GHC, this simply re-exports
base. On older versions of GHC, this module backports parts of
GHC.Genericsthat were not included at the time, including
Generics.Deriving.THimplements Template Haskell functionality for deriving instances of
Educational code: in order to provide examples of how to define and use
GHC.Generics-based defaults, this library offers a number of modules which define examples of type classes along with default implementations for the classes' methods. Currently, the following modules are provided:
It is worth emphasizing that these modules are primarly intended for
educational purposes. Many of the classes in these modules resemble other
commonly used classes—for example,
base—but in general, the classes that
generic-deriving defines are not drop-in replacements. Moreover, the
generic defaults that
generic-deriving provide often make simplifying
assumptions that may violate expectations of how these classes might work
elsewhere. For example, the generic default for
GShow does not behave
deriving Show would.
If you are seeking
GHC.Generics-based defaults for type classes in
base, consider using the
Generics.Deriving.Defaultprovides newtypes that allow leveraging the generic defaults in this library using the
DerivingViaGHC language extension.
Generics.Deriving.Default, and a selection of educational modules.
*Note that all licence references and agreements mentioned in the generic-deriving README section above are relevant to that project's source code only.