This package provides functionality for generalising the deriving mechanism in Haskell to arbitrary classes. It was first described in the paper:
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:
including the 'Generic(1)' classes and representation data types. On modern versions of GHC, this simply re-exports "GHC.Generics" from 'base'. On older versions of GHC, this module backports parts of "GHC.Generics" that were not included at the time, including 'Generic(1)' instances.
instances of 'Generic(1)'.
"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: "Generics.Deriving.Copoint", "Generics.Deriving.ConNames", "Generics.Deriving.Enum", "Generics.Deriving.Eq", "Generics.Deriving.Foldable", "Generics.Deriving.Functor", "Generics.Deriving.Monoid", "Generics.Deriving.Semigroup", "Generics.Deriving.Show", "Generics.Deriving.Traversable", and "Generics.Deriving.Uniplate".
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, 'GShow' from "Generics.Deriving.Show" resembles 'Show' from '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 exactly like 'deriving Show' would.
If you are seeking "GHC.Generics"-based defaults for type classes in 'base', consider using the '<http://hackage.haskell.org/package/generic-data generic-data>' library.
generic defaults in this library using the 'DerivingVia' GHC language extension.
"Generics.Deriving.Default", and a selection of educational modules.
Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
---|---|---|---|---|---|
1.14.5-bp156.1.1 info | GA Release | 2024-03-05 | 15 SP6 |
|
|
1.14.1-bp155.2.14 info | GA Release | 2023-05-22 | 15 SP5 |
|
|
1.14.1-bp154.1.12 info | GA Release | 2022-05-09 | 15 SP4 |
|
|
1.13.1-bp153.1.20 info | GA Release | 2021-04-13 | 15 SP3 |
|
|
1.13.1-bp152.1.11 info | GA Release | 2020-06-16 | 15 SP2 |
|
|
1.12.3-bp151.2.2 info | GA Release | 2019-07-17 | 15 SP1 |
|
|
1.12.3-bp151.1.11 info | GA Release | 2019-05-31 | 15 SP1 |
|
|
1.11.2-bp150.2.4 info | GA Release | 2018-07-30 | 15 |
|
|
1.10.5-2.5 info | 5585 | 2016-09-14 | 12 GA-SP5 |
|
|
1.10.5-2.13 info | 5585 | 2016-09-14 | 12 GA-SP5 |
|
|