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
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:
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.