deriving-compat: Backports of GHC deriving extensions

[ bsd3, compatibility, library ] [ Propose Tags ]

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:

Note that some recent GHC extensions are not covered by this package:


[Skip to Readme]
Versions 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 (info)
Change log CHANGELOG.md
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]
License BSD-3-Clause
Copyright (C) 2015-2016 Ryan Scott
Author Ryan Scott
Maintainer Ryan Scott <ryan.gl.scott@gmail.com>
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 Mon Jul 18 17:57:28 UTC 2016
Distributions Debian:0.5.1, LTSHaskell:0.5.2, NixOS:0.5.2, Stackage:0.5.2
Downloads 8483 total (105 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
base-4-9

Use base-4.9 or later.

EnabledAutomatic
template-haskell-2-11

Use template-haskell-2.11.0.0 or later.

EnabledAutomatic
new-functor-classes

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.

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for deriving-compat-0.3.1

[back to package description]

deriving-compat

Hackage Hackage Dependencies Haskell Programming Language BSD3 License Build

Provides Template Haskell functions that mimic deriving extensions that were introduced or modified in recent versions of GHC. Currently, the following extensions are covered:

  • DeriveFoldable
  • DeriveFunctor
  • DeriveTraversable

The following changes have been backported:

  • In GHC 8.0, DeriveFoldable was changed to allow folding over data types with existential constraints.
  • In GHC 8.0, DeriveFoldable and DeriveTraversable were changed so as not to generate superfluous mempty or pure expressions in generated code. As a result, this allows deriving Traversable instances for datatypes with unlifted argument types.
  • In GHC 8.0, deriving Show was 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.
  • In GHC 8.2, deriving Ord was changed so that it generates concrete if-expressions that are not subject to RebindableSyntax.

Note that some recent GHC 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.