ghc-generic-deriving/generic-deriving-1.14.cabal

155 lines
6.7 KiB
Plaintext

name: generic-deriving
version: 1.14
x-revision: 1
synopsis: Generic programming library for generalised deriving.
description:
This package provides functionality for generalising the deriving mechanism
in Haskell to arbitrary classes. It was first described in the paper:
.
* /A generic deriving mechanism for Haskell/.
Jose Pedro Magalhaes, Atze Dijkstra, Johan Jeuring, and Andres Loeh.
Haskell'10.
.
The current implementation integrates with the new GHC Generics. See
<http://www.haskell.org/haskellwiki/GHC.Generics> for more information.
Template Haskell code is provided for supporting older GHCs.
.
This library is organized as follows:
.
* "Generics.Deriving.Base" defines the core functionality for GHC generics,
including the @Generic(1)@ classes and representation data types.
On modern versions of GHC, this simply re-exports "GHC.Generics" from
@base@. On older versions of GHC, this module backports parts of
"GHC.Generics" that were not included at the time, including @Generic(1)@
instances.
.
* "Generics.Deriving.TH" implements Template Haskell functionality for
deriving instances of @Generic(1)@.
.
* Educational code: in order to provide examples of how to define and use
"GHC.Generics"-based defaults, this library offers a number of modules
which define examples of type classes along with default implementations
for the classes' methods. Currently, the following modules are provided:
"Generics.Deriving.Copoint", "Generics.Deriving.ConNames",
"Generics.Deriving.Enum", "Generics.Deriving.Eq",
"Generics.Deriving.Foldable", "Generics.Deriving.Functor",
"Generics.Deriving.Monoid", "Generics.Deriving.Semigroup",
"Generics.Deriving.Show", "Generics.Deriving.Traversable",
and "Generics.Deriving.Uniplate".
.
It is worth emphasizing that these modules are primarly intended for
educational purposes. Many of the classes in these modules resemble other
commonly used classes—for example, @GShow@ from "Generics.Deriving.Show"
resembles @Show@ from @base@—but in general, the classes that
@generic-deriving@ defines are not drop-in replacements. Moreover, the
generic defaults that @generic-deriving@ provide often make simplifying
assumptions that may violate expectations of how these classes might work
elsewhere. For example, the generic default for @GShow@ does not behave
exactly like @deriving Show@ would.
.
If you are seeking "GHC.Generics"-based defaults for type classes in
@base@, consider using the
@<http://hackage.haskell.org/package/generic-data generic-data>@ library.
.
* "Generics.Deriving.Default" provides newtypes that allow leveraging the
generic defaults in this library using the @DerivingVia@ GHC language
extension.
.
* "Generics.Deriving" re-exports "Generics.Deriving.Base",
"Generics.Deriving.Default", and a selection of educational modules.
homepage: https://github.com/dreixel/generic-deriving
bug-reports: https://github.com/dreixel/generic-deriving/issues
category: Generics
copyright: 2011-2013 Universiteit Utrecht, University of Oxford
license: BSD3
license-file: LICENSE
author: José Pedro Magalhães
maintainer: generics@haskell.org
stability: experimental
build-type: Simple
cabal-version: >= 1.10
tested-with: GHC == 7.0.4
, GHC == 7.2.2
, GHC == 7.4.2
, GHC == 7.6.3
, GHC == 7.8.4
, GHC == 7.10.3
, GHC == 8.0.2
, GHC == 8.2.2
, GHC == 8.4.4
, GHC == 8.6.5
, GHC == 8.8.3
, GHC == 8.10.1
extra-source-files: CHANGELOG.md
, README.md
source-repository head
type: git
location: https://github.com/dreixel/generic-deriving
flag base-4-9
description: Use base-4.9 or later. This version of base uses a
DataKinds-based encoding of GHC generics metadata.
default: True
library
hs-source-dirs: src
exposed-modules: Generics.Deriving
Generics.Deriving.Base
Generics.Deriving.Instances
Generics.Deriving.Copoint
Generics.Deriving.ConNames
Generics.Deriving.Default
Generics.Deriving.Enum
Generics.Deriving.Eq
Generics.Deriving.Foldable
Generics.Deriving.Functor
Generics.Deriving.Monoid
Generics.Deriving.Semigroup
Generics.Deriving.Show
Generics.Deriving.Traversable
Generics.Deriving.Uniplate
Generics.Deriving.TH
other-modules: Generics.Deriving.Base.Internal
Generics.Deriving.Monoid.Internal
Generics.Deriving.Semigroup.Internal
Generics.Deriving.TH.Internal
Paths_generic_deriving
if flag(base-4-9)
build-depends: base >= 4.9 && < 5
other-modules: Generics.Deriving.TH.Post4_9
else
build-depends: base >= 4.3 && < 4.9
other-modules: Generics.Deriving.TH.Pre4_9
build-depends: containers >= 0.1 && < 0.7
, ghc-prim < 1
, template-haskell >= 2.4 && < 2.19
, th-abstraction >= 0.4 && < 0.5
default-language: Haskell2010
ghc-options: -Wall
test-suite spec
type: exitcode-stdio-1.0
main-is: Spec.hs
other-modules: DefaultSpec
EmptyCaseSpec
ExampleSpec
T68Spec
TypeInTypeSpec
build-depends: base >= 4.3 && < 5
, generic-deriving
, hspec >= 2 && < 3
, template-haskell >= 2.4 && < 2.18
build-tool-depends: hspec-discover:hspec-discover
hs-source-dirs: tests
default-language: Haskell2010
ghc-options: -Wall -threaded -rtsopts
if impl(ghc >= 8.6)
ghc-options: -Wno-star-is-type