@@ -1,21 +1,17 @@
1+cabal-version: 2.2
12name: ether
2−version: 0.5.0.0
3+version: 0.5.2.0
34synopsis: Monad transformers and classes
4−description:
5− Ether is a Haskell library that extends @mtl@ and @transformers@ with
6− tagged monad transformers and classes in a compatible way.
7−
8− Introduction <https://int-index.github.io/ether/>
9−
10−category: Control
11−license: BSD3
5+description: Lib
6+license: BSD-3-Clause
7+-- ^ unfortunately have to change this line due to the issue with cabal2nix
128license-file: LICENSE
9+category: Control
1310author: Vladislav Zavialov
1411maintainer: Vladislav Zavialov <vlad.z.4096@gmail.com>
1512homepage: https://int-index.github.io/ether/
1613bug-reports: https://github.com/int-index/ether/issues
1714build-type: Simple
18−cabal-version: >=1.18
1915extra-source-files: CHANGELOG.md
2016
2117source-repository head
@@ -24,6 +20,20 @@ source-repository head
2420 location: git@github.com:int-index/ether.git
2521
2622
23+flag disable-tup-instances
24+
25+ description:
26+ Disable auto-generated 'HasLens' instances for tuples. The reason one
27+ might want to do this is to reduce the size of .hi-files, as well as the
28+ time and memory GHC needs to build Ether. To recover flattening with
29+ tuples, use 'Ether.Internal.makeTupleInstancesHasLens' at specific tuple
30+ sizes you need in your application.
31+
32+ This is a build-time performance hack, enable this flag at your own risk.
33+
34+ default: False
35+ manual: True
36+
2737library
2838
2939 exposed-modules:
@@ -41,24 +51,13 @@ library
4151 Ether.Internal.HasLens
4252 Ether.Internal.TH_Utils
4353 Ether.Internal.TH_TupleInstances
44− Ether.Internal.TupleInstances_TagsK
45− Ether.Internal.TupleInstances_Tags
46− Ether.Internal.TupleInstances_HasLens
47− Ether.Internal.TupleInstances_HasLens_1
48− Ether.Internal.TupleInstances_HasLens_2
49− Ether.Internal.TupleInstances_HasLens_3
50− Ether.Internal.TupleInstances_HasLens_4
51− Ether.Internal.TupleInstances_HasLens_5
52− Ether.Internal.TupleInstances_HasLens_6
53− Ether.Internal.TupleInstances_HasLens_7
54− Ether.Internal.TupleInstances_HasLens_8
55− Ether.Internal.TupleInstances_HasLens_9
54+ Ether.Internal.TupleInstances
5655
5756 build-depends:
58− base >=4.9 && <4.11,
57+ base >=4.9 && <4.13,
5958 transformers >=0.5.2.0,
6059 transformers-lift >=0.2.0.1,
61− mtl >=2.2.1,
60+ mtl >=2.2.2,
6261 mmorph >=1.0.4,
6362 monad-control >=1.0.0.4,
6463 transformers-base >=0.4.4,
@@ -102,10 +101,13 @@ library
102101 ghc-options:
103102 -Wall -O2
104103
104+ if flag(disable-tup-instances)
105+ cpp-options: -DDISABLE_TUP_INSTANCES
106+
105107test-suite regression
106108
107109 build-depends:
108− base >=4.9 && <4.11,
110+ base >=4.9 && <4.13,
109111 transformers >=0.4.2,
110112 mtl >=2.2.1,
111113 tasty >=0.10,
@@ -119,6 +121,7 @@ test-suite regression
119121 Regression.hs
120122
121123 other-modules:
124+ TupleInstances
122125 Regression.T1
123126 Regression.T2
124127 Regression.T3
@@ -169,11 +172,14 @@ test-suite regression
169172 ghc-options:
170173 -Wall -fno-warn-missing-signatures
171174
175+ if flag(disable-tup-instances)
176+ cpp-options: -DDISABLE_TUP_INSTANCES
177+
172178
173179benchmark bench
174180
175181 build-depends:
176− base >=4.9 && <4.11,
182+ base >=4.9 && <4.13,
177183 mtl >=2.2.1,
178184 transformers >=0.4.2,
179185 criterion >=1.1,
@@ -184,6 +190,9 @@ benchmark bench
184190 main-is:
185191 Bench.hs
186192
193+ other-modules:
194+ TupleInstances
195+
187196 type:
188197 exitcode-stdio-1.0
189198
@@ -223,3 +232,6 @@ benchmark bench
223232
224233 ghc-prof-options:
225234 -fprof-auto
235+
236+ if flag(disable-tup-instances)
237+ cpp-options: -DDISABLE_TUP_INSTANCES