File: generics-sop.cabal

package info (click to toggle)
haskell-generics-sop 0.5.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 248 kB
  • sloc: haskell: 1,830; sh: 22; makefile: 4
file content (145 lines) | stat: -rw-r--r-- 5,646 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name:                generics-sop
version:             0.5.1.0
synopsis:            Generic Programming using True Sums of Products
description:
  A library to support the definition of generic functions.
  Datatypes are viewed in a uniform, structured way:
  the choice between constructors is represented using an n-ary
  sum, and the arguments of each constructor are represented using
  an n-ary product.
  .
  The module "Generics.SOP" is the main module of this library and contains
  more detailed documentation.
  .
  Since version 0.4.0.0, this package is now based on
  @<https://hackage.haskell.org/package/sop-core sop-core>@. The core package
  contains all the functionality of n-ary sums and products, whereas this
  package provides the datatype-generic programming support on top.
  .
  Examples of using this library are provided by the following
  packages:
  .
    * @<https://hackage.haskell.org/package/basic-sop basic-sop>@ basic examples,
  .
    * @<https://hackage.haskell.org/package/pretty-sop pretty-sop>@ generic pretty printing,
  .
    * @<https://hackage.haskell.org/package/lens-sop lens-sop>@ generically computed lenses,
  .
    * @<https://hackage.haskell.org/package/json-sop json-sop>@ generic JSON conversions.
  .
  A detailed description of the ideas behind this library is provided by
  the paper:
  .
    * Edsko de Vries and Andres Löh.
      <http://www.andres-loeh.de/TrueSumsOfProducts True Sums of Products>.
      Workshop on Generic Programming (WGP) 2014.
  .
license:             BSD3
license-file:        LICENSE
author:              Edsko de Vries <edsko@well-typed.com>, Andres Löh <andres@well-typed.com>
maintainer:          andres@well-typed.com
category:            Generics
build-type:          Simple
cabal-version:       >=1.10
extra-source-files:  CHANGELOG.md doctest.sh
tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2, GHC == 8.10.1

source-repository head
  type:                git
  location:            https://github.com/well-typed/generics-sop

library
  exposed-modules:     Generics.SOP
                       Generics.SOP.GGP
                       Generics.SOP.TH
                       Generics.SOP.Type.Metadata
                       -- exposed via Generics.SOP:
                       Generics.SOP.Instances
                       Generics.SOP.Metadata
                       Generics.SOP.Universe
                       -- re-exported from Data.SOP:
                       Generics.SOP.Dict
                       Generics.SOP.BasicFunctors
                       Generics.SOP.Classes
                       Generics.SOP.Constraint
                       Generics.SOP.NP
                       Generics.SOP.NS
                       Generics.SOP.Sing
  build-depends:       base                 >= 4.9  && < 4.15,
                       sop-core             == 0.5.0.*,
                       template-haskell     >= 2.8  && < 2.17,
                       th-abstraction       >= 0.3  && < 0.4,
                       ghc-prim             >= 0.3  && < 0.7
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall
  default-extensions:  CPP
                       ScopedTypeVariables
                       TypeFamilies
                       RankNTypes
                       TypeOperators
                       GADTs
                       ConstraintKinds
                       MultiParamTypeClasses
                       TypeSynonymInstances
                       FlexibleInstances
                       FlexibleContexts
                       DeriveFunctor
                       DeriveFoldable
                       DeriveTraversable
                       DefaultSignatures
                       KindSignatures
                       DataKinds
                       FunctionalDependencies

  if impl(ghc <8.2)
    default-extensions: AutoDeriveTypeable

  -- if impl(ghc >= 8.6)
  --   default-extensions: NoStarIsType
  other-extensions:    PolyKinds
                       UndecidableInstances
                       TemplateHaskell
                       StandaloneDeriving
                       EmptyCase
                       UndecidableSuperClasses

test-suite generics-sop-examples
  type:                exitcode-stdio-1.0
  main-is:             Example.hs
  other-modules:       HTransExample
  hs-source-dirs:      test
  default-language:    Haskell2010
  ghc-options:         -Wall
  build-depends:       base                 >= 4.9  && < 5,
                       generics-sop
  other-extensions:    DeriveGeneric
                       EmptyCase
                       TemplateHaskell
                       ConstraintKinds
                       GADTs
                       DataKinds
                       TypeFamilies
                       FlexibleContexts
                       FlexibleInstances
                       PolyKinds
                       DefaultSignatures
                       FunctionalDependencies
                       MultiParamTypeClasses
                       TypeFamilies

benchmark generics-sop-bench
  type:                exitcode-stdio-1.0
  main-is:             SOPBench.hs
  other-modules:       SOPBench.Type
                       SOPBench.Roundtrip
                       SOPBench.Eq
                       SOPBench.Show
  hs-source-dirs:      bench
  default-language:    Haskell2010
  ghc-options:         -Wall
  build-depends:       base                 >= 4.6  && < 5,
                       criterion,
                       deepseq,
                       generics-sop,
                       template-haskell