name: generic-deriving version: 1.14.2 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 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 @@ 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.4 , GHC == 8.10.7 , GHC == 9.0.2 , GHC == 9.2.2 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.20 , 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 T80Spec T82Spec TypeInTypeSpec build-depends: base >= 4.3 && < 5 , generic-deriving , hspec >= 2 && < 3 , template-haskell >= 2.4 && < 2.20 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