f8be1226c73771b00646fff42c8fecf3d289da35
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.6.0.1
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.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
44
45     ghc-options: -O2 -Wall
46
47     other-extensions: CPP, BangPatterns
48
49     exposed-modules:
50         Data.Containers.ListUtils
51         Data.IntMap
52         Data.IntMap.Lazy
53         Data.IntMap.Strict
54         Data.IntMap.Strict.Internal
55         Data.IntMap.Internal
56         Data.IntMap.Internal.Debug
57         Data.IntMap.Merge.Lazy
58         Data.IntMap.Merge.Strict
59         Data.IntSet.Internal
60         Data.IntSet
61         Data.Map
62         Data.Map.Lazy
63         Data.Map.Merge.Lazy
64         Data.Map.Strict.Internal
65         Data.Map.Strict
66         Data.Map.Merge.Strict
67         Data.Map.Internal
68         Data.Map.Internal.Debug
69         Data.Set.Internal
70         Data.Set
71         Data.Graph
72         Data.Sequence
73         Data.Sequence.Internal
74         Data.Sequence.Internal.Sorting
75         Data.Tree
76         Utils.Containers.Internal.BitUtil
77         Utils.Containers.Internal.BitQueue
78         Utils.Containers.Internal.StrictPair
79
80     other-modules:
81         Utils.Containers.Internal.State
82         Utils.Containers.Internal.StrictMaybe
83         Utils.Containers.Internal.PtrEquality
84         Utils.Containers.Internal.Coercions
85     if impl(ghc)
86       other-modules:
87         Utils.Containers.Internal.TypeError
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.6 && < 5,
104     containers,
105     gauge >= 0.2.3 && < 0.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.6 && < 5,
115     containers,
116     gauge >= 0.2.3 && < 0.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.6 && < 5,
126     containers,
127     gauge >= 0.2.3 && < 0.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.6 && < 5,
138     containers,
139     gauge >= 0.2.3 && < 0.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.6 && < 5,
151     containers,
152     gauge >= 0.2.3 && < 0.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.6 && < 5,
163     containers,
164     gauge >= 0.2.3 && < 0.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.6 && < 5,
174     containers,
175     gauge >= 0.2.3 && < 0.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.6 && < 5,
185     containers,
186     gauge >= 0.2.3 && < 0.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.6 && < 5,
196     containers,
197     gauge >= 0.2.3 && < 0.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.IntMap.Strict.Internal
209       Data.IntSet.Internal
210       LookupGE_IntMap
211       Utils.Containers.Internal.BitUtil
212       Utils.Containers.Internal.StrictPair
213       Utils.Containers.Internal.TypeError
214   ghc-options: -O2
215   cpp-options: -DTESTING
216   other-modules:
217     Data.IntMap.Internal
218   build-depends:
219     base >= 4.6 && < 5,
220     containers,
221     gauge >= 0.2.3 && < 0.3,
222     deepseq >= 1.1.0.0 && < 1.5
223
224 benchmark lookupge-map
225   type: exitcode-stdio-1.0
226   hs-source-dirs: benchmarks/LookupGE, .
227   main-is: Map.hs
228   other-modules:
229       Data.Map
230       Data.Map.Internal.Debug
231       Data.Map.Internal.DeprecatedShowTree
232       Data.Map.Lazy
233       Data.Map.Strict
234       Data.Map.Strict.Internal
235       Data.Set.Internal
236       LookupGE_Map
237       Utils.Containers.Internal.BitQueue
238       Utils.Containers.Internal.BitUtil
239       Utils.Containers.Internal.PtrEquality
240       Utils.Containers.Internal.StrictMaybe
241       Utils.Containers.Internal.StrictPair
242   ghc-options: -O2
243   cpp-options: -DTESTING
244   other-modules:
245     Data.Map.Internal
246   build-depends:
247     base >= 4.6 && < 5,
248     containers,
249     gauge >= 0.2.3 && < 0.3,
250     deepseq >= 1.1.0.0 && < 1.5
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         Utils.Containers.Internal.TypeError
276     type: exitcode-stdio-1.0
277     cpp-options: -DTESTING
278
279     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
280     ghc-options: -O2
281     other-extensions: CPP, BangPatterns
282     include-dirs: include
283
284     build-depends:
285         HUnit,
286         QuickCheck >= 2.7.1,
287         test-framework,
288         test-framework-hunit,
289         test-framework-quickcheck2,
290         transformers
291
292 Test-suite map-strict-properties
293     hs-source-dirs: tests, .
294     main-is: map-properties.hs
295     other-modules:
296         Data.Map.Internal
297         Data.Map.Internal.Debug
298         Data.Map.Internal.DeprecatedShowTree
299         Data.Map.Merge.Strict
300         Data.Map.Strict
301         Data.Map.Strict.Internal
302         Data.Set
303         Data.Set.Internal
304         Utils.Containers.Internal.BitQueue
305         Utils.Containers.Internal.BitUtil
306         Utils.Containers.Internal.PtrEquality
307         Utils.Containers.Internal.StrictMaybe
308         Utils.Containers.Internal.StrictPair
309         Utils.Containers.Internal.TypeError
310     type: exitcode-stdio-1.0
311     cpp-options: -DTESTING -DSTRICT
312
313     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
314     ghc-options: -O2
315     other-extensions: CPP, BangPatterns
316     include-dirs: include
317
318     build-depends:
319         HUnit,
320         QuickCheck >= 2.7.1,
321         test-framework,
322         test-framework-hunit,
323         test-framework-quickcheck2,
324         transformers
325
326 Test-suite bitqueue-properties
327     hs-source-dirs: tests, .
328     main-is: bitqueue-properties.hs
329     other-modules:
330         Utils.Containers.Internal.BitQueue
331         Utils.Containers.Internal.BitUtil
332     type: exitcode-stdio-1.0
333     cpp-options: -DTESTING
334
335     build-depends: base >= 4.6 && < 5
336     ghc-options: -O2
337     other-extensions: CPP, BangPatterns
338     include-dirs: include
339
340     build-depends:
341         QuickCheck >= 2.7.1,
342         test-framework,
343         test-framework-quickcheck2
344
345 Test-suite set-properties
346     hs-source-dirs: tests, .
347     main-is: set-properties.hs
348     other-modules:
349         Data.IntSet
350         Data.IntSet.Internal
351         Data.Set
352         Data.Set.Internal
353         Utils.Containers.Internal.BitUtil
354         Utils.Containers.Internal.PtrEquality
355         Utils.Containers.Internal.StrictPair
356     type: exitcode-stdio-1.0
357     cpp-options: -DTESTING
358
359     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
360     ghc-options: -O2
361     other-extensions: CPP, BangPatterns
362     include-dirs: include
363
364     build-depends:
365         HUnit,
366         QuickCheck >= 2.7.1,
367         test-framework,
368         test-framework-hunit,
369         test-framework-quickcheck2,
370         transformers
371
372 Test-suite intmap-lazy-properties
373     hs-source-dirs: tests, .
374     main-is: intmap-properties.hs
375     other-modules:
376         Data.IntMap.Internal
377         Data.IntMap.Internal.Debug
378         Data.IntMap.Internal.DeprecatedDebug
379         Data.IntMap.Lazy
380         Data.IntSet
381         Data.IntSet.Internal
382         IntMapValidity
383         Utils.Containers.Internal.BitUtil
384         Utils.Containers.Internal.StrictPair
385         Utils.Containers.Internal.TypeError
386     type: exitcode-stdio-1.0
387     cpp-options: -DTESTING
388
389     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
390     ghc-options: -O2
391     other-extensions: CPP, BangPatterns
392     include-dirs: include
393
394     build-depends:
395         HUnit,
396         QuickCheck >= 2.7.1,
397         test-framework,
398         test-framework-hunit,
399         test-framework-quickcheck2
400
401 Test-suite intmap-strict-properties
402     hs-source-dirs: tests, .
403     main-is: intmap-properties.hs
404     other-modules:
405         Data.IntMap.Internal
406         Data.IntMap.Internal.Debug
407         Data.IntMap.Internal.DeprecatedDebug
408         Data.IntMap.Strict
409         Data.IntMap.Strict.Internal
410         Data.IntSet
411         Data.IntSet.Internal
412         IntMapValidity
413         Utils.Containers.Internal.BitUtil
414         Utils.Containers.Internal.StrictPair
415         Utils.Containers.Internal.TypeError
416     type: exitcode-stdio-1.0
417     cpp-options: -DTESTING -DSTRICT
418
419     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
420     ghc-options: -O2
421     other-extensions: CPP, BangPatterns
422     include-dirs: include
423
424     build-depends:
425         HUnit,
426         QuickCheck >= 2.7.1,
427         test-framework,
428         test-framework-hunit,
429         test-framework-quickcheck2
430
431 Test-suite intset-properties
432     hs-source-dirs: tests, .
433     main-is: intset-properties.hs
434     other-modules:
435         Data.IntSet
436         Data.IntSet.Internal
437         Data.Set
438         Data.Set.Internal
439         IntSetValidity
440         Utils.Containers.Internal.BitUtil
441         Utils.Containers.Internal.PtrEquality
442         Utils.Containers.Internal.StrictPair
443     type: exitcode-stdio-1.0
444     cpp-options: -DTESTING
445
446     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
447     ghc-options: -O2
448     other-extensions: CPP, BangPatterns
449     include-dirs: include
450
451     build-depends:
452         HUnit,
453         QuickCheck >= 2.7.1,
454         test-framework,
455         test-framework-hunit,
456         test-framework-quickcheck2
457
458 Test-suite seq-properties
459     hs-source-dirs: tests, .
460     main-is: seq-properties.hs
461     other-modules:
462         Data.Sequence
463         Data.Sequence.Internal
464         Utils.Containers.Internal.StrictPair
465         Data.Sequence.Internal.Sorting
466         Utils.Containers.Internal.Coercions
467         Utils.Containers.Internal.State
468     type: exitcode-stdio-1.0
469     cpp-options: -DTESTING
470
471     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
472     ghc-options: -O2
473     other-extensions: CPP, BangPatterns
474     include-dirs: include
475
476     build-depends:
477         QuickCheck >= 2.7.1,
478         test-framework,
479         test-framework-quickcheck2,
480         transformers
481
482 Test-suite tree-properties
483     hs-source-dirs: tests, .
484     main-is: tree-properties.hs
485     other-modules:
486         Data.Tree
487         Data.Sequence
488         Data.Sequence.Internal.Sorting
489         Utils.Containers.Internal.Coercions
490         Utils.Containers.Internal.State
491         Utils.Containers.Internal.StrictPair
492     type: exitcode-stdio-1.0
493     cpp-options: -DTESTING
494
495     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
496     ghc-options: -O2
497     other-extensions: CPP, BangPatterns
498     include-dirs: include
499
500     build-depends:
501         QuickCheck >= 2.7.1,
502         test-framework,
503         test-framework-quickcheck2,
504         transformers
505
506 test-suite map-strictness-properties
507   hs-source-dirs: tests, .
508   main-is: map-strictness.hs
509   other-modules:
510       Data.Map.Internal
511       Data.Map.Internal.Debug
512       Data.Map.Internal.DeprecatedShowTree
513       Data.Map.Strict
514       Data.Map.Strict.Internal
515       Data.Set.Internal
516       Utils.Containers.Internal.BitQueue
517       Utils.Containers.Internal.BitUtil
518       Utils.Containers.Internal.PtrEquality
519       Utils.Containers.Internal.StrictMaybe
520       Utils.Containers.Internal.StrictPair
521       Utils.Containers.Internal.TypeError
522   type: exitcode-stdio-1.0
523
524   build-depends:
525     array >= 0.4.0.0,
526     base >= 4.6 && < 5,
527     ChasingBottoms,
528     deepseq >= 1.2 && < 1.5,
529     QuickCheck >= 2.7.1,
530     test-framework >= 0.3.3,
531     test-framework-quickcheck2 >= 0.2.9
532
533   ghc-options: -Wall
534   other-extensions: CPP, BangPatterns
535   include-dirs: include
536
537 test-suite intmap-strictness-properties
538   hs-source-dirs: tests, .
539   main-is: intmap-strictness.hs
540   other-modules:
541       Data.IntMap.Internal
542       Data.IntMap.Internal.DeprecatedDebug
543       Data.IntMap.Strict
544       Data.IntMap.Strict.Internal
545       Data.IntSet.Internal
546       Utils.Containers.Internal.BitUtil
547       Utils.Containers.Internal.StrictPair
548       Utils.Containers.Internal.TypeError
549   type: exitcode-stdio-1.0
550   other-extensions: CPP, BangPatterns
551
552   build-depends:
553     array >= 0.4.0.0,
554     base >= 4.6 && < 5,
555     ChasingBottoms,
556     deepseq >= 1.2 && < 1.5,
557     QuickCheck >= 2.7.1,
558     test-framework >= 0.3.3,
559     test-framework-quickcheck2 >= 0.2.9
560
561   ghc-options: -Wall
562   include-dirs: include
563
564 test-suite intset-strictness-properties
565   hs-source-dirs: tests, .
566   main-is: intset-strictness.hs
567   other-modules:
568       Data.IntSet
569       Data.IntSet.Internal
570       Utils.Containers.Internal.BitUtil
571       Utils.Containers.Internal.StrictPair
572       Utils.Containers.Internal.TypeError
573   type: exitcode-stdio-1.0
574   other-extensions: CPP, BangPatterns
575
576   build-depends:
577     array >= 0.4.0.0,
578     base >= 4.6 && < 5,
579     ChasingBottoms,
580     deepseq >= 1.2 && < 1.5,
581     QuickCheck >= 2.7.1,
582     test-framework >= 0.3.3,
583     test-framework-quickcheck2 >= 0.2.9
584
585   ghc-options: -Wall
586   include-dirs: include
587
588 test-suite listutils-properties
589   hs-source-dirs: tests, .
590   main-is: listutils-properties.hs
591   other-modules:
592       Data.Containers.ListUtils
593       Utils.Containers.Internal.TypeError
594   type: exitcode-stdio-1.0
595
596   build-depends:
597     base >= 4.6 && < 5,
598     ChasingBottoms,
599     deepseq >= 1.2 && < 1.5,
600     QuickCheck >= 2.7.1,
601     test-framework >= 0.3.3,
602     test-framework-quickcheck2 >= 0.2.9
603
604   ghc-options: -Wall
605   include-dirs: include