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
Bounded
- Deriving
Enum
- Deriving
Ix
- Deriving
Eq
, Eq1
, and Eq2
- Deriving
Ord
, Ord1
, and Ord2
- Deriving
Read
, Read1
, and Read2
- Deriving
Show
, Show1
, and Show2
DeriveFoldable
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.
Note that some recent GHC typeclasses/extensions are not covered by this package:
DeriveDataTypeable
DeriveGeneric
, which was introducted in GHC 7.2 for deriving Generic
instances, and modified in GHC 7.6 to allow derivation of Generic1
instances. Use Generics.Deriving.TH
from generic-deriving
to derive Generic(1)
using Template Haskell.
DeriveLift
, which was introduced in GHC 8.0 for deriving Lift
instances. Use Language.Haskell.TH.Lift
from th-lift
to derive Lift
using Template Haskell.
- The
Bifunctor
typeclass, which was introduced in GHC 7.10, as well as the Bifoldable
and Bitraversable
typeclasses, which were introduced in GHC 8.2. Use Data.Bifunctor.TH
from bifunctors
to derive these typeclasses using Template Haskell.