deriving-compat: Backports of GHC deriving extensions
Provides Template Haskell functions that mimic deriving extensions that were introduced or modified in recent versions of GHC. Currently, the following extensions are covered:
The following changes have been backported:
In GHC 8.0,
DeriveFoldablewas changed to allow folding over data types with existential constraints.
In GHC 8.0,
DeriveTraversablewere changed so as not to generate superfluous
pureexpressions in generated code. As a result, this allows deriving
Traversableinstances for datatypes with unlifted argument types.
In GHC 8.0, deriving
Showwas changed so that constructor fields with unlifted types are no longer shown with parentheses, and the output of showing an unlifted type is suffixed with the same number of hash signs as the corresponding primitive literals.
Note that some recent GHC extensions are not covered by this package:
DeriveGeneric, which was introducted in GHC 7.2 for deriving
Genericinstances, and modified in GHC 7.6 to allow derivation of
Generic(1)using Template Haskell.
DeriveLift, which was introduced in GHC 8.0 for deriving
Liftusing Template Haskell.
[Skip to Readme]
|Versions [faq]||0.1, 0.2, 0.2.1, 0.2.2, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5, 0.5.1, 0.5.2, 0.5.3, 0.5.4 (info)|
|Dependencies||base (>=4.3 && <5), containers (>=0.1 && <0.6), ghc-boot-th, ghc-prim, template-haskell (>=2.5 && <2.12), transformers (>=0.2), transformers-compat (>=0.5) [details]|
|Copyright||(C) 2015-2016 Ryan Scott|
|Maintainer||Ryan Scott <firstname.lastname@example.org>|
|Source repo||head: git clone https://github.com/haskell-compat/deriving-compat|
|Uploaded||by ryanglscott at Sun Jun 19 01:57:29 UTC 2016|
|Distributions||Debian:0.5.1, LTSHaskell:0.5.4, NixOS:0.5.4, Stackage:0.5.4|
|Downloads||10402 total (459 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
Docs available [build log]
Last success reported on 2016-06-19 [all 1 reports]
Use base-4.9 or later.
Use a version of transformers or transformers-compat with a modern-style Data.Functor.Classes module. This flag cannot be used when building with transformers-0.4, since it comes with a different version of Data.Functor.Classes.
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees