deriving-compat: Backports of GHC deriving extensions
deriving-compat provides Template Haskell functions that
mimic deriving extensions that were introduced or modified
in recent versions of GHC. Currently, the following
typeclasses/extensions are covered:
Deriving
BoundedDeriving
EnumDeriving
IxDeriving
EqDeriving
OrdDeriving
ReadDeriving
ShowDeriveFoldable
DeriveFunctor
DeriveTraversable
GeneralizedNewtypeDeriving(with GHC 8.2 or later)DerivingVia(with GHC 8.2 or later)
See the Data.Deriving module for a full list of backported changes.
In addition, deriving-compat also provides some additional
deriving functionality that has not yet been merged into
upstream GHC. Aside from the GHC deriving extensions
mentioned above, deriving-compat also permits deriving
instances of classes in the Data.Functor.Classes module,
covering the Eq1, Eq2, Ord1, Ord2, Read1,
Read2, Show1, and Show2 classes. This extra
functionality is outside of the main scope of
deriving-compat, as it does not backport extensions that
exist in today's GHC. Nevertheless, the underlying Template
Haskell machinery needed to derive Eq and friends
extends very naturally to Eq1 and friends, so this extra
functionality is included in deriving-compat as a
convenience.
Note that some recent GHC typeclasses/extensions are not covered by this package:
DeriveDataTypeable
DeriveGeneric, which was introducted in GHC 7.2 for derivingGenericinstances, and modified in GHC 7.6 to allow derivation ofGeneric1instances. UseGenerics.Deriving.THfromgeneric-derivingto deriveGeneric(1)using Template Haskell.DeriveLift, which was introduced in GHC 8.0 for derivingLiftinstances. UseLanguage.Haskell.TH.Liftfromth-liftto deriveLiftusing Template Haskell.The
Bifunctortypeclass, which was introduced in GHC 7.10, as well as theBifoldableandBitraversabletypeclasses, which were introduced in GHC 8.2. UseData.Bifunctor.THfrombifunctorsto derive these typeclasses using Template Haskell.
[Skip to Readme]
Downloads
- deriving-compat-0.6.7.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
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
Candidates
- No Candidates
| Versions [RSS] | 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, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 0.5.9, 0.5.10, 0.6, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.6.7 (info) |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | base (>=4.9 && <5), containers (>=0.1 && <0.9), ghc-boot-th, ghc-prim, template-haskell (>=2.11 && <2.24), th-abstraction (>=0.5 && <0.8), transformers (>=0.5 && <0.7), transformers-compat (>=0.5) [details] |
| Tested with | ghc ==8.0.2, ghc ==8.2.2, ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.4, ghc ==8.10.7, ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.8, ghc ==9.6.6, ghc ==9.8.4, ghc ==9.10.1, ghc ==9.12.1 |
| License | BSD-3-Clause |
| Copyright | (C) 2015-2017 Ryan Scott |
| Author | Ryan Scott |
| Maintainer | Ryan Scott <ryan.gl.scott@gmail.com> |
| Revised | Revision 1 made by ryanglscott at 2025-03-02T13:43:39Z |
| Category | Compatibility |
| Home page | https://github.com/haskell-compat/deriving-compat |
| Bug tracker | https://github.com/haskell-compat/deriving-compat/issues |
| Source repo | head: git clone https://github.com/haskell-compat/deriving-compat |
| Uploaded | by ryanglscott at 2024-12-06T00:37:12Z |
| Distributions | Arch:0.6.7, Debian:0.5.9, Fedora:0.6.7, LTSHaskell:0.6.7, NixOS:0.6.7, Stackage:0.6.7 |
| Reverse Dependencies | 25 direct, 53 indirect [details] |
| Downloads | 48664 total (125 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2024-12-06 [all 1 reports] |