Allowed inlining for traverseWithIndex (#623)
[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     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.Merge.Lazy
65         Data.Map.Strict.Internal
66         Data.Map.Strict
67         Data.Map.Merge.Strict
68         Data.Map.Internal
69         Data.Map.Internal.Debug
70         Data.Set.Internal
71         Data.Set
72         Data.Graph
73         Data.Sequence
74         Data.Sequence.Internal
75         Data.Sequence.Internal.Sorting
76         Data.Tree
77         Utils.Containers.Internal.BitUtil
78         Utils.Containers.Internal.BitQueue
79         Utils.Containers.Internal.StrictPair
80
81     other-modules:
82         Utils.Containers.Internal.State
83         Utils.Containers.Internal.StrictMaybe
84         Utils.Containers.Internal.PtrEquality
85         Utils.Containers.Internal.Coercions
86     if impl(ghc)
87       other-modules:
88         Utils.Containers.Internal.TypeError
89         Data.Map.Internal.DeprecatedShowTree
90         Data.IntMap.Internal.DeprecatedDebug
91
92     include-dirs: include
93
94 -----------------------------
95 -- B E N C H M A R K I N G --
96 -----------------------------
97
98 benchmark intmap-benchmarks
99   type: exitcode-stdio-1.0
100   hs-source-dirs: benchmarks
101   main-is: IntMap.hs
102   ghc-options: -O2
103   build-depends:
104     base >= 4.6 && < 5,
105     containers,
106     gauge >= 0.2.3 && < 0.3,
107     deepseq >= 1.1.0.0 && < 1.5
108
109 benchmark intset-benchmarks
110   type: exitcode-stdio-1.0
111   hs-source-dirs: benchmarks
112   main-is: IntSet.hs
113   ghc-options: -O2
114   build-depends:
115     base >= 4.6 && < 5,
116     containers,
117     gauge >= 0.2.3 && < 0.3,
118     deepseq >= 1.1.0.0 && < 1.5
119
120 benchmark map-benchmarks
121   type: exitcode-stdio-1.0
122   hs-source-dirs: benchmarks
123   main-is: Map.hs
124   ghc-options: -O2
125   build-depends:
126     base >= 4.6 && < 5,
127     containers,
128     gauge >= 0.2.3 && < 0.3,
129     deepseq >= 1.1.0.0 && < 1.5,
130     transformers
131
132 benchmark sequence-benchmarks
133   type: exitcode-stdio-1.0
134   hs-source-dirs: benchmarks
135   main-is: Sequence.hs
136   ghc-options: -O2
137   build-depends:
138     base >= 4.6 && < 5,
139     containers,
140     gauge >= 0.2.3 && < 0.3,
141     deepseq >= 1.1.0.0 && < 1.5,
142     random < 1.2,
143     transformers
144
145 benchmark set-benchmarks
146   type: exitcode-stdio-1.0
147   hs-source-dirs: benchmarks
148   main-is: Set.hs
149   ghc-options: -O2
150   build-depends:
151     base >= 4.6 && < 5,
152     containers,
153     gauge >= 0.2.3 && < 0.3,
154     deepseq >= 1.1.0.0 && < 1.5
155
156 benchmark set-operations-intmap
157   type: exitcode-stdio-1.0
158   hs-source-dirs: benchmarks/SetOperations
159   main-is: SetOperations-IntMap.hs
160   other-modules: SetOperations
161   ghc-options: -O2
162   build-depends:
163     base >= 4.6 && < 5,
164     containers,
165     gauge >= 0.2.3 && < 0.3
166
167 benchmark set-operations-intset
168   type: exitcode-stdio-1.0
169   hs-source-dirs: benchmarks/SetOperations
170   main-is: SetOperations-IntSet.hs
171   other-modules: SetOperations
172   ghc-options: -O2
173   build-depends:
174     base >= 4.6 && < 5,
175     containers,
176     gauge >= 0.2.3 && < 0.3
177
178 benchmark set-operations-map
179   type: exitcode-stdio-1.0
180   hs-source-dirs: benchmarks/SetOperations
181   main-is: SetOperations-Map.hs
182   other-modules: SetOperations
183   ghc-options: -O2
184   build-depends:
185     base >= 4.6 && < 5,
186     containers,
187     gauge >= 0.2.3 && < 0.3
188
189 benchmark set-operations-set
190   type: exitcode-stdio-1.0
191   hs-source-dirs: benchmarks/SetOperations
192   main-is: SetOperations-Set.hs
193   other-modules: SetOperations
194   ghc-options: -O2
195   build-depends:
196     base >= 4.6 && < 5,
197     containers,
198     gauge >= 0.2.3 && < 0.3
199
200 benchmark lookupge-intmap
201   type: exitcode-stdio-1.0
202   hs-source-dirs: benchmarks/LookupGE, .
203   main-is: IntMap.hs
204   other-modules:
205       Data.IntMap
206       Data.IntMap.Internal.DeprecatedDebug
207       Data.IntMap.Lazy
208       Data.IntMap.Strict
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     ghc-prim
224
225 benchmark lookupge-map
226   type: exitcode-stdio-1.0
227   hs-source-dirs: benchmarks/LookupGE, .
228   main-is: Map.hs
229   other-modules:
230       Data.Map
231       Data.Map.Internal.Debug
232       Data.Map.Internal.DeprecatedShowTree
233       Data.Map.Lazy
234       Data.Map.Strict
235       Data.Map.Strict.Internal
236       Data.Set.Internal
237       LookupGE_Map
238       Utils.Containers.Internal.BitQueue
239       Utils.Containers.Internal.BitUtil
240       Utils.Containers.Internal.PtrEquality
241       Utils.Containers.Internal.StrictMaybe
242       Utils.Containers.Internal.StrictPair
243   ghc-options: -O2
244   cpp-options: -DTESTING
245   other-modules:
246     Data.Map.Internal
247   build-depends:
248     base >= 4.6 && < 5,
249     containers,
250     gauge >= 0.2.3 && < 0.3,
251     deepseq >= 1.1.0.0 && < 1.5,
252     ghc-prim
253
254 -------------------
255 -- T E S T I N G --
256 -------------------
257
258 -- Every test-suite contains the build-depends and options of the library,
259 -- plus the testing stuff.
260
261 Test-suite map-lazy-properties
262     hs-source-dirs: tests, .
263     main-is: map-properties.hs
264     other-modules:
265         Data.Map.Internal
266         Data.Map.Internal.Debug
267         Data.Map.Internal.DeprecatedShowTree
268         Data.Map.Lazy
269         Data.Map.Merge.Lazy
270         Data.Set
271         Data.Set.Internal
272         Utils.Containers.Internal.BitQueue
273         Utils.Containers.Internal.BitUtil
274         Utils.Containers.Internal.PtrEquality
275         Utils.Containers.Internal.StrictMaybe
276         Utils.Containers.Internal.StrictPair
277     type: exitcode-stdio-1.0
278     cpp-options: -DTESTING
279
280     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
281     ghc-options: -O2
282     other-extensions: CPP, BangPatterns
283     include-dirs: include
284
285     build-depends:
286         HUnit,
287         QuickCheck >= 2.7.1,
288         test-framework,
289         test-framework-hunit,
290         test-framework-quickcheck2,
291         transformers
292
293 Test-suite map-strict-properties
294     hs-source-dirs: tests, .
295     main-is: map-properties.hs
296     other-modules:
297         Data.Map.Internal
298         Data.Map.Internal.Debug
299         Data.Map.Internal.DeprecatedShowTree
300         Data.Map.Merge.Strict
301         Data.Map.Strict
302         Data.Map.Strict.Internal
303         Data.Set
304         Data.Set.Internal
305         Utils.Containers.Internal.BitQueue
306         Utils.Containers.Internal.BitUtil
307         Utils.Containers.Internal.PtrEquality
308         Utils.Containers.Internal.StrictMaybe
309         Utils.Containers.Internal.StrictPair
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, ghc-prim
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, ghc-prim
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, ghc-prim
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, ghc-prim
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.IntSet
410         Data.IntSet.Internal
411         IntMapValidity
412         Utils.Containers.Internal.BitUtil
413         Utils.Containers.Internal.StrictPair
414         Utils.Containers.Internal.TypeError
415     type: exitcode-stdio-1.0
416     cpp-options: -DTESTING -DSTRICT
417
418     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
419     ghc-options: -O2
420     other-extensions: CPP, BangPatterns
421     include-dirs: include
422
423     build-depends:
424         HUnit,
425         QuickCheck >= 2.7.1,
426         test-framework,
427         test-framework-hunit,
428         test-framework-quickcheck2
429
430 Test-suite intset-properties
431     hs-source-dirs: tests, .
432     main-is: intset-properties.hs
433     other-modules:
434         Data.IntSet
435         Data.IntSet.Internal
436         Data.Set
437         Data.Set.Internal
438         IntSetValidity
439         Utils.Containers.Internal.BitUtil
440         Utils.Containers.Internal.PtrEquality
441         Utils.Containers.Internal.StrictPair
442     type: exitcode-stdio-1.0
443     cpp-options: -DTESTING
444
445     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
446     ghc-options: -O2
447     other-extensions: CPP, BangPatterns
448     include-dirs: include
449
450     build-depends:
451         HUnit,
452         QuickCheck >= 2.7.1,
453         test-framework,
454         test-framework-hunit,
455         test-framework-quickcheck2
456
457 Test-suite seq-properties
458     hs-source-dirs: tests, .
459     main-is: seq-properties.hs
460     other-modules:
461         Data.Sequence
462         Data.Sequence.Internal
463         Utils.Containers.Internal.StrictPair
464     type: exitcode-stdio-1.0
465     cpp-options: -DTESTING
466
467     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
468     ghc-options: -O2
469     other-extensions: CPP, BangPatterns
470     include-dirs: include
471
472     build-depends:
473         QuickCheck >= 2.7.1,
474         test-framework,
475         test-framework-quickcheck2,
476         transformers
477
478 Test-suite tree-properties
479     hs-source-dirs: tests, .
480     main-is: tree-properties.hs
481     other-modules:
482         Data.Tree
483     type: exitcode-stdio-1.0
484     cpp-options: -DTESTING
485
486     build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
487     ghc-options: -O2
488     other-extensions: CPP, BangPatterns
489     include-dirs: include
490
491     build-depends:
492         QuickCheck >= 2.7.1,
493         test-framework,
494         test-framework-quickcheck2,
495         transformers
496
497 test-suite map-strictness-properties
498   hs-source-dirs: tests, .
499   main-is: map-strictness.hs
500   other-modules:
501       Data.Map.Internal
502       Data.Map.Internal.Debug
503       Data.Map.Internal.DeprecatedShowTree
504       Data.Map.Strict
505       Data.Map.Strict.Internal
506       Data.Set.Internal
507       Utils.Containers.Internal.BitQueue
508       Utils.Containers.Internal.BitUtil
509       Utils.Containers.Internal.PtrEquality
510       Utils.Containers.Internal.StrictMaybe
511       Utils.Containers.Internal.StrictPair
512   type: exitcode-stdio-1.0
513
514   build-depends:
515     array >= 0.4.0.0,
516     base >= 4.6 && < 5,
517     ChasingBottoms,
518     deepseq >= 1.2 && < 1.5,
519     QuickCheck >= 2.7.1,
520     ghc-prim,
521     test-framework >= 0.3.3,
522     test-framework-quickcheck2 >= 0.2.9
523
524   ghc-options: -Wall
525   other-extensions: CPP, BangPatterns
526   include-dirs: include
527
528 test-suite intmap-strictness-properties
529   hs-source-dirs: tests, .
530   main-is: intmap-strictness.hs
531   other-modules:
532       Data.IntMap.Internal
533       Data.IntMap.Internal.DeprecatedDebug
534       Data.IntMap.Strict
535       Data.IntSet.Internal
536       Utils.Containers.Internal.BitUtil
537       Utils.Containers.Internal.StrictPair
538       Utils.Containers.Internal.TypeError
539   type: exitcode-stdio-1.0
540   other-extensions: CPP, BangPatterns
541
542   build-depends:
543     array >= 0.4.0.0,
544     base >= 4.6 && < 5,
545     ChasingBottoms,
546     deepseq >= 1.2 && < 1.5,
547     QuickCheck >= 2.7.1,
548     ghc-prim,
549     test-framework >= 0.3.3,
550     test-framework-quickcheck2 >= 0.2.9
551
552   ghc-options: -Wall
553   include-dirs: include
554
555 test-suite intset-strictness-properties
556   hs-source-dirs: tests, .
557   main-is: intset-strictness.hs
558   other-modules:
559       Data.IntSet
560       Data.IntSet.Internal
561       Utils.Containers.Internal.BitUtil
562       Utils.Containers.Internal.StrictPair
563   type: exitcode-stdio-1.0
564   other-extensions: CPP, BangPatterns
565
566   build-depends:
567     array >= 0.4.0.0,
568     base >= 4.6 && < 5,
569     ChasingBottoms,
570     deepseq >= 1.2 && < 1.5,
571     QuickCheck >= 2.7.1,
572     ghc-prim,
573     test-framework >= 0.3.3,
574     test-framework-quickcheck2 >= 0.2.9
575
576   ghc-options: -Wall
577   include-dirs: include
578
579 test-suite listutils-properties
580   hs-source-dirs: tests, .
581   main-is: listutils-properties.hs
582   other-modules:
583       Data.Containers.ListUtils
584   type: exitcode-stdio-1.0
585
586   build-depends:
587     base >= 4.6 && < 5,
588     ChasingBottoms,
589     deepseq >= 1.2 && < 1.5,
590     QuickCheck >= 2.7.1,
591     ghc-prim,
592     test-framework >= 0.3.3,
593     test-framework-quickcheck2 >= 0.2.9
594
595   ghc-options: -Wall
596   include-dirs: include