forked from pool/ghc-generic-deriving
155 lines
6.7 KiB
Plaintext
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
|