remove foldlStrict, generalize type of unions, see #520 (#524)
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.5.11.0
3 license: BSD3
4 license-file: LICENSE
5 maintainer: libraries@haskell.org
6 bug-reports: https://github.com/haskell/containers/issues
7 synopsis: Assorted concrete container types
8 category: Data Structures
9 description:
10     .
11     This package contains efficient general-purpose implementations
12     of various immutable container types including sets, maps, sequences,
13     trees, and graphs.
14     .
15     For a walkthrough of what this package provides with examples of common
16     operations see the [containers
17     introduction](https://haskell-containers.readthedocs.io).
18     .
19     The declared cost of each operation is either worst-case or amortized, but
20     remains valid even if structures are shared.
21
22 build-type: Simple
23 cabal-version:  >=1.8
24 extra-source-files:
25     include/containers.h
26     tests/Makefile
27     tests/*.hs
28     benchmarks/Makefile
29     benchmarks/bench-cmp.pl
30     benchmarks/bench-cmp.sh
31     benchmarks/*.hs
32     benchmarks/SetOperations/Makefile
33     benchmarks/SetOperations/*.hs
34     benchmarks/LookupGE/Makefile
35     benchmarks/LookupGE/*.hs
36     changelog.md
37
38 source-repository head
39     type:     git
40     location: http://github.com/haskell/containers.git
41
42 Library
43     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5
44     if impl(ghc)
45         build-depends: ghc-prim
46
47     ghc-options: -O2 -Wall
48
49     other-extensions: CPP, BangPatterns
50
51     exposed-modules:
52         Data.Containers.ListUtils
53         Data.IntMap
54         Data.IntMap.Lazy
55         Data.IntMap.Strict
56         Data.IntMap.Internal
57         Data.IntMap.Internal.Debug
58         Data.IntMap.Merge.Lazy
59         Data.IntMap.Merge.Strict
60         Data.IntSet.Internal
61         Data.IntSet
62         Data.Map
63         Data.Map.Lazy
64         Data.Map.Lazy.Merge
65         Data.Map.Merge.Lazy
66         Data.Map.Strict.Internal
67         Data.Map.Strict
68         Data.Map.Strict.Merge
69         Data.Map.Merge.Strict
70         Data.Map.Internal
71         Data.Map.Internal.Debug
72         Data.Set.Internal
73         Data.Set
74         Data.Graph
75         Data.Sequence
76         Data.Sequence.Internal
77         Data.Sequence.Internal.Sorting
78         Data.Tree
79         Utils.Containers.Internal.BitUtil
80         Utils.Containers.Internal.BitQueue
81         Utils.Containers.Internal.StrictPair
82
83     other-modules:
84         Utils.Containers.Internal.State
85         Utils.Containers.Internal.StrictMaybe
86         Utils.Containers.Internal.PtrEquality
87         Utils.Containers.Internal.Coercions
88         Data.Map.Internal.DeprecatedShowTree
89         Data.IntMap.Internal.DeprecatedDebug
90
91     include-dirs: include
92
93 -----------------------------
94 -- B E N C H M A R K I N G --
95 -----------------------------
96
97 benchmark intmap-benchmarks
98   type: exitcode-stdio-1.0
99   hs-source-dirs: benchmarks
100   main-is: IntMap.hs
101   ghc-options: -O2
102   build-depends:
103     base >= 4.2 && < 5,
104     containers,
105     criterion >= 0.4.0 && < 1.3,
106     deepseq >= 1.1.0.0 && < 1.5
107
108 benchmark intset-benchmarks
109   type: exitcode-stdio-1.0
110   hs-source-dirs: benchmarks
111   main-is: IntSet.hs
112   ghc-options: -O2
113   build-depends:
114     base >= 4.2 && < 5,
115     containers,
116     criterion >= 0.4.0 && < 1.3,
117     deepseq >= 1.1.0.0 && < 1.5
118
119 benchmark map-benchmarks
120   type: exitcode-stdio-1.0
121   hs-source-dirs: benchmarks
122   main-is: Map.hs
123   ghc-options: -O2
124   build-depends:
125     base >= 4.2 && < 5,
126     containers,
127     criterion >= 0.4.0 && < 1.3,
128     deepseq >= 1.1.0.0 && < 1.5,
129     transformers
130
131 benchmark sequence-benchmarks
132   type: exitcode-stdio-1.0
133   hs-source-dirs: benchmarks
134   main-is: Sequence.hs
135   ghc-options: -O2
136   build-depends:
137     base >= 4.2 && < 5,
138     containers,
139     criterion >= 0.4.0 && < 1.3,
140     deepseq >= 1.1.0.0 && < 1.5,
141     random < 1.2,
142     transformers
143
144 benchmark set-benchmarks
145   type: exitcode-stdio-1.0
146   hs-source-dirs: benchmarks
147   main-is: Set.hs
148   ghc-options: -O2
149   build-depends:
150     base >= 4.2 && < 5,
151     containers,
152     criterion >= 0.4.0 && < 1.3,
153     deepseq >= 1.1.0.0 && < 1.5
154
155 benchmark set-operations-intmap
156   type: exitcode-stdio-1.0
157   hs-source-dirs: benchmarks/SetOperations
158   main-is: SetOperations-IntMap.hs
159   other-modules: SetOperations
160   ghc-options: -O2
161   build-depends:
162     base >= 4.2 && < 5,
163     containers,
164     criterion >= 0.4.0 && < 1.3
165
166 benchmark set-operations-intset
167   type: exitcode-stdio-1.0
168   hs-source-dirs: benchmarks/SetOperations
169   main-is: SetOperations-IntSet.hs
170   other-modules: SetOperations
171   ghc-options: -O2
172   build-depends:
173     base >= 4.2 && < 5,
174     containers,
175     criterion >= 0.4.0 && < 1.3
176
177 benchmark set-operations-map
178   type: exitcode-stdio-1.0
179   hs-source-dirs: benchmarks/SetOperations
180   main-is: SetOperations-Map.hs
181   other-modules: SetOperations
182   ghc-options: -O2
183   build-depends:
184     base >= 4.2 && < 5,
185     containers,
186     criterion >= 0.4.0 && < 1.3
187
188 benchmark set-operations-set
189   type: exitcode-stdio-1.0
190   hs-source-dirs: benchmarks/SetOperations
191   main-is: SetOperations-Set.hs
192   other-modules: SetOperations
193   ghc-options: -O2
194   build-depends:
195     base >= 4.2 && < 5,
196     containers,
197     criterion >= 0.4.0 && < 1.3
198
199 benchmark lookupge-intmap
200   type: exitcode-stdio-1.0
201   hs-source-dirs: benchmarks/LookupGE, .
202   main-is: IntMap.hs
203   other-modules:
204       Data.IntMap
205       Data.IntMap.Internal.DeprecatedDebug
206       Data.IntMap.Lazy
207       Data.IntMap.Strict
208       Data.IntSet.Internal
209       LookupGE_IntMap
210       Utils.Containers.Internal.BitUtil
211       Utils.Containers.Internal.StrictPair
212   ghc-options: -O2
213   cpp-options: -DTESTING
214   other-modules:
215     Data.IntMap.Internal
216   build-depends:
217     base >= 4.2 && < 5,
218     containers,
219     criterion >= 0.4.0 && < 1.3,
220     deepseq >= 1.1.0.0 && < 1.5,
221     ghc-prim
222
223 benchmark lookupge-map
224   type: exitcode-stdio-1.0
225   hs-source-dirs: benchmarks/LookupGE, .
226   main-is: Map.hs
227   other-modules:
228       Data.Map
229       Data.Map.Internal.Debug
230       Data.Map.Internal.DeprecatedShowTree
231       Data.Map.Lazy
232       Data.Map.Strict
233       Data.Map.Strict.Internal
234       Data.Set.Internal
235       LookupGE_Map
236       Utils.Containers.Internal.BitQueue
237       Utils.Containers.Internal.BitUtil
238       Utils.Containers.Internal.PtrEquality
239       Utils.Containers.Internal.StrictMaybe
240       Utils.Containers.Internal.StrictPair
241   ghc-options: -O2
242   cpp-options: -DTESTING
243   other-modules:
244     Data.Map.Internal
245   build-depends:
246     base >= 4.2 && < 5,
247     containers,
248     criterion >= 0.4.0 && < 1.3,
249     deepseq >= 1.1.0.0 && < 1.5,
250     ghc-prim
251
252 -------------------
253 -- T E S T I N G --
254 -------------------
255
256 -- Every test-suite contains the build-depends and options of the library,
257 -- plus the testing stuff.
258
259 Test-suite map-lazy-properties
260     hs-source-dirs: tests, .
261     main-is: map-properties.hs
262     other-modules:
263         Data.Map.Internal
264         Data.Map.Internal.Debug
265         Data.Map.Internal.DeprecatedShowTree
266         Data.Map.Lazy
267         Data.Map.Merge.Lazy
268         Data.Set
269         Data.Set.Internal
270         Utils.Containers.Internal.BitQueue
271         Utils.Containers.Internal.BitUtil
272         Utils.Containers.Internal.PtrEquality
273         Utils.Containers.Internal.StrictMaybe
274         Utils.Containers.Internal.StrictPair
275     type: exitcode-stdio-1.0
276     cpp-options: -DTESTING
277
278     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
279     ghc-options: -O2
280     other-extensions: CPP, BangPatterns
281     include-dirs: include
282
283     build-depends:
284         HUnit,
285         QuickCheck >= 2.7.1,
286         test-framework,
287         test-framework-hunit,
288         test-framework-quickcheck2,
289         transformers
290
291 Test-suite map-strict-properties
292     hs-source-dirs: tests, .
293     main-is: map-properties.hs
294     other-modules:
295         Data.Map.Internal
296         Data.Map.Internal.Debug
297         Data.Map.Internal.DeprecatedShowTree
298         Data.Map.Merge.Strict
299         Data.Map.Strict
300         Data.Map.Strict.Internal
301         Data.Set
302         Data.Set.Internal
303         Utils.Containers.Internal.BitQueue
304         Utils.Containers.Internal.BitUtil
305         Utils.Containers.Internal.PtrEquality
306         Utils.Containers.Internal.StrictMaybe
307         Utils.Containers.Internal.StrictPair
308     type: exitcode-stdio-1.0
309     cpp-options: -DTESTING -DSTRICT
310
311     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
312     ghc-options: -O2
313     other-extensions: CPP, BangPatterns
314     include-dirs: include
315
316     build-depends:
317         HUnit,
318         QuickCheck >= 2.7.1,
319         test-framework,
320         test-framework-hunit,
321         test-framework-quickcheck2,
322         transformers
323
324 Test-suite bitqueue-properties
325     hs-source-dirs: tests, .
326     main-is: bitqueue-properties.hs
327     other-modules:
328         Utils.Containers.Internal.BitQueue
329         Utils.Containers.Internal.BitUtil
330     type: exitcode-stdio-1.0
331     cpp-options: -DTESTING
332
333     build-depends: base >= 4.3 && < 5, ghc-prim
334     ghc-options: -O2
335     other-extensions: CPP, BangPatterns
336     include-dirs: include
337
338     build-depends:
339         QuickCheck >= 2.7.1,
340         test-framework,
341         test-framework-quickcheck2
342
343 Test-suite set-properties
344     hs-source-dirs: tests, .
345     main-is: set-properties.hs
346     other-modules:
347         Data.IntSet
348         Data.IntSet.Internal
349         Data.Set
350         Data.Set.Internal
351         Utils.Containers.Internal.BitUtil
352         Utils.Containers.Internal.PtrEquality
353         Utils.Containers.Internal.StrictPair
354     type: exitcode-stdio-1.0
355     cpp-options: -DTESTING
356
357     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
358     ghc-options: -O2
359     other-extensions: CPP, BangPatterns
360     include-dirs: include
361
362     build-depends:
363         HUnit,
364         QuickCheck >= 2.7.1,
365         test-framework,
366         test-framework-hunit,
367         test-framework-quickcheck2,
368         transformers
369
370 Test-suite intmap-lazy-properties
371     hs-source-dirs: tests, .
372     main-is: intmap-properties.hs
373     other-modules:
374         Data.IntMap.Internal
375         Data.IntMap.Internal.Debug
376         Data.IntMap.Internal.DeprecatedDebug
377         Data.IntMap.Lazy
378         Data.IntSet
379         Data.IntSet.Internal
380         IntMapValidity
381         Utils.Containers.Internal.BitUtil
382         Utils.Containers.Internal.StrictPair
383     type: exitcode-stdio-1.0
384     cpp-options: -DTESTING
385
386     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
387     ghc-options: -O2
388     other-extensions: CPP, BangPatterns
389     include-dirs: include
390
391     build-depends:
392         HUnit,
393         QuickCheck >= 2.7.1,
394         test-framework,
395         test-framework-hunit,
396         test-framework-quickcheck2
397
398 Test-suite intmap-strict-properties
399     hs-source-dirs: tests, .
400     main-is: intmap-properties.hs
401     other-modules:
402         Data.IntMap.Internal
403         Data.IntMap.Internal.Debug
404         Data.IntMap.Internal.DeprecatedDebug
405         Data.IntMap.Strict
406         Data.IntSet
407         Data.IntSet.Internal
408         IntMapValidity
409         Utils.Containers.Internal.BitUtil
410         Utils.Containers.Internal.StrictPair
411     type: exitcode-stdio-1.0
412     cpp-options: -DTESTING -DSTRICT
413
414     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
415     ghc-options: -O2
416     other-extensions: CPP, BangPatterns
417     include-dirs: include
418
419     build-depends:
420         HUnit,
421         QuickCheck >= 2.7.1,
422         test-framework,
423         test-framework-hunit,
424         test-framework-quickcheck2
425
426 Test-suite intset-properties
427     hs-source-dirs: tests, .
428     main-is: intset-properties.hs
429     other-modules:
430         Data.IntSet
431         Data.IntSet.Internal
432         Data.Set
433         Data.Set.Internal
434         IntSetValidity
435         Utils.Containers.Internal.BitUtil
436         Utils.Containers.Internal.PtrEquality
437         Utils.Containers.Internal.StrictPair
438     type: exitcode-stdio-1.0
439     cpp-options: -DTESTING
440
441     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
442     ghc-options: -O2
443     other-extensions: CPP, BangPatterns
444     include-dirs: include
445
446     build-depends:
447         HUnit,
448         QuickCheck >= 2.7.1,
449         test-framework,
450         test-framework-hunit,
451         test-framework-quickcheck2
452
453 Test-suite deprecated-properties
454     hs-source-dirs: tests, .
455     main-is: deprecated-properties.hs
456     other-modules:
457         Data.IntMap
458         Data.IntMap.Internal
459         Data.IntMap.Internal.DeprecatedDebug
460         Data.IntMap.Lazy
461         Data.IntMap.Strict
462         Data.IntSet.Internal
463         Data.Map
464         Data.Map.Internal
465         Data.Map.Internal.Debug
466         Data.Map.Internal.DeprecatedShowTree
467         Data.Map.Lazy
468         Data.Map.Strict
469         Data.Map.Strict.Internal
470         Data.Set.Internal
471         Utils.Containers.Internal.BitQueue
472         Utils.Containers.Internal.BitUtil
473         Utils.Containers.Internal.PtrEquality
474         Utils.Containers.Internal.StrictMaybe
475         Utils.Containers.Internal.StrictPair
476     type: exitcode-stdio-1.0
477     cpp-options: -DTESTING
478
479     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
480     ghc-options: -O2
481     other-extensions: CPP, BangPatterns
482     include-dirs: include
483
484     build-depends:
485         QuickCheck >= 2.7.1,
486         test-framework,
487         test-framework-quickcheck2
488
489 Test-suite seq-properties
490     hs-source-dirs: tests, .
491     main-is: seq-properties.hs
492     other-modules:
493         Data.Sequence
494         Data.Sequence.Internal
495         Utils.Containers.Internal.StrictPair
496     type: exitcode-stdio-1.0
497     cpp-options: -DTESTING
498
499     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
500     ghc-options: -O2
501     other-extensions: CPP, BangPatterns
502     include-dirs: include
503
504     build-depends:
505         QuickCheck >= 2.7.1,
506         test-framework,
507         test-framework-quickcheck2,
508         transformers
509
510 Test-suite tree-properties
511     hs-source-dirs: tests, .
512     main-is: tree-properties.hs
513     other-modules:
514         Data.Tree
515     type: exitcode-stdio-1.0
516     cpp-options: -DTESTING
517
518     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
519     ghc-options: -O2
520     other-extensions: CPP, BangPatterns
521     include-dirs: include
522
523     build-depends:
524         QuickCheck >= 2.7.1,
525         test-framework,
526         test-framework-quickcheck2,
527         transformers
528
529 test-suite map-strictness-properties
530   hs-source-dirs: tests, .
531   main-is: map-strictness.hs
532   other-modules:
533       Data.Map.Internal
534       Data.Map.Internal.Debug
535       Data.Map.Internal.DeprecatedShowTree
536       Data.Map.Strict
537       Data.Map.Strict.Internal
538       Data.Set.Internal
539       Utils.Containers.Internal.BitQueue
540       Utils.Containers.Internal.BitUtil
541       Utils.Containers.Internal.PtrEquality
542       Utils.Containers.Internal.StrictMaybe
543       Utils.Containers.Internal.StrictPair
544   type: exitcode-stdio-1.0
545
546   build-depends:
547     array,
548     base >= 4.3 && < 5,
549     ChasingBottoms,
550     deepseq >= 1.2 && < 1.5,
551     QuickCheck >= 2.7.1,
552     ghc-prim,
553     test-framework >= 0.3.3,
554     test-framework-quickcheck2 >= 0.2.9
555
556   ghc-options: -Wall
557   other-extensions: CPP, BangPatterns
558   include-dirs: include
559
560 test-suite intmap-strictness-properties
561   hs-source-dirs: tests, .
562   main-is: intmap-strictness.hs
563   other-modules:
564       Data.IntMap.Internal
565       Data.IntMap.Internal.DeprecatedDebug
566       Data.IntMap.Strict
567       Data.IntSet.Internal
568       Utils.Containers.Internal.BitUtil
569       Utils.Containers.Internal.StrictPair
570   type: exitcode-stdio-1.0
571   other-extensions: CPP, BangPatterns
572
573   build-depends:
574     array,
575     base >= 4.3 && < 5,
576     ChasingBottoms,
577     deepseq >= 1.2 && < 1.5,
578     QuickCheck >= 2.7.1,
579     ghc-prim,
580     test-framework >= 0.3.3,
581     test-framework-quickcheck2 >= 0.2.9
582
583   ghc-options: -Wall
584   include-dirs: include
585
586 test-suite intset-strictness-properties
587   hs-source-dirs: tests, .
588   main-is: intset-strictness.hs
589   other-modules:
590       Data.IntSet
591       Data.IntSet.Internal
592       Utils.Containers.Internal.BitUtil
593       Utils.Containers.Internal.StrictPair
594   type: exitcode-stdio-1.0
595   other-extensions: CPP, BangPatterns
596
597   build-depends:
598     array,
599     base >= 4.3 && < 5,
600     ChasingBottoms,
601     deepseq >= 1.2 && < 1.5,
602     QuickCheck >= 2.7.1,
603     ghc-prim,
604     test-framework >= 0.3.3,
605     test-framework-quickcheck2 >= 0.2.9
606
607   ghc-options: -Wall
608   include-dirs: include
609
610 test-suite listutils-properties
611   hs-source-dirs: tests, .
612   main-is: listutils-properties.hs
613   other-modules:
614       Data.Containers.ListUtils
615   type: exitcode-stdio-1.0
616
617   build-depends:
618     base >= 4.3 && < 5,
619     ChasingBottoms,
620     deepseq >= 1.2 && < 1.5,
621     QuickCheck >= 2.7.1,
622     ghc-prim,
623     test-framework >= 0.3.3,
624     test-framework-quickcheck2 >= 0.2.9
625
626   ghc-options: -Wall
627   include-dirs: include