Merge pull request #431 from phadej/restrictKeys-example
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.5.10.2
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     This package contains efficient general-purpose implementations
11     of various basic immutable container types.  The declared cost of
12     each operation is either worst-case or amortized, but remains
13     valid even if structures are shared.
14 build-type: Simple
15 cabal-version:  >=1.8
16 extra-source-files:
17     include/containers.h
18     tests/Makefile
19     tests/*.hs
20     benchmarks/Makefile
21     benchmarks/bench-cmp.pl
22     benchmarks/bench-cmp.sh
23     benchmarks/*.hs
24     benchmarks/SetOperations/Makefile
25     benchmarks/SetOperations/*.hs
26     benchmarks/LookupGE/Makefile
27     benchmarks/LookupGE/*.hs
28     changelog.md
29
30 source-repository head
31     type:     git
32     location: http://github.com/haskell/containers.git
33
34 Library
35     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5
36     if impl(ghc)
37         build-depends: ghc-prim
38
39     ghc-options: -O2 -Wall
40
41     other-extensions: CPP, BangPatterns
42
43     exposed-modules:
44         Data.IntMap
45         Data.IntMap.Lazy
46         Data.IntMap.Strict
47         Data.IntMap.Internal
48         Data.IntMap.Internal.Debug
49         Data.IntMap.Merge.Lazy
50         Data.IntMap.Merge.Strict
51         Data.IntSet.Internal
52         Data.IntSet
53         Data.Map
54         Data.Map.Lazy
55         Data.Map.Lazy.Merge
56         Data.Map.Merge.Lazy
57         Data.Map.Strict.Internal
58         Data.Map.Strict
59         Data.Map.Strict.Merge
60         Data.Map.Merge.Strict
61         Data.Map.Internal
62         Data.Map.Internal.Debug
63         Data.Set.Internal
64         Data.Set
65         Data.Graph
66         Data.Sequence
67         Data.Sequence.Internal
68         Data.Tree
69         Utils.Containers.Internal.BitUtil
70         Utils.Containers.Internal.BitQueue
71         Utils.Containers.Internal.StrictPair
72
73     other-modules:
74         Utils.Containers.Internal.StrictFold
75         Utils.Containers.Internal.StrictMaybe
76         Utils.Containers.Internal.PtrEquality
77         Data.Map.Internal.DeprecatedShowTree
78         Data.IntMap.Internal.DeprecatedDebug
79
80     include-dirs: include
81
82 -----------------------------
83 -- B E N C H M A R K I N G --
84 -----------------------------
85
86 benchmark intmap-benchmarks
87   type: exitcode-stdio-1.0
88   hs-source-dirs: benchmarks
89   main-is: IntMap.hs
90   ghc-options: -O2
91   build-depends:
92     base >= 4.2 && < 5,
93     containers,
94     criterion >= 0.4.0 && < 1.3,
95     deepseq >= 1.1.0.0 && < 1.5
96
97 benchmark intset-benchmarks
98   type: exitcode-stdio-1.0
99   hs-source-dirs: benchmarks
100   main-is: IntSet.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 map-benchmarks
109   type: exitcode-stdio-1.0
110   hs-source-dirs: benchmarks
111   main-is: Map.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     transformers
119
120 benchmark sequence-benchmarks
121   type: exitcode-stdio-1.0
122   hs-source-dirs: benchmarks
123   main-is: Sequence.hs
124   ghc-options: -O2
125   build-depends:
126     base >= 4.2 && < 5,
127     containers,
128     criterion >= 0.4.0 && < 1.3,
129     deepseq >= 1.1.0.0 && < 1.5,
130     random < 1.2,
131     transformers
132
133 benchmark set-benchmarks
134   type: exitcode-stdio-1.0
135   hs-source-dirs: benchmarks
136   main-is: Set.hs
137   ghc-options: -O2
138   build-depends:
139     base >= 4.2 && < 5,
140     containers,
141     criterion >= 0.4.0 && < 1.3,
142     deepseq >= 1.1.0.0 && < 1.5
143
144 benchmark set-operations-intmap
145   type: exitcode-stdio-1.0
146   hs-source-dirs: benchmarks/SetOperations
147   main-is: SetOperations-IntMap.hs
148   other-modules: SetOperations
149   ghc-options: -O2
150   build-depends:
151     base >= 4.2 && < 5,
152     containers,
153     criterion >= 0.4.0 && < 1.3
154
155 benchmark set-operations-intset
156   type: exitcode-stdio-1.0
157   hs-source-dirs: benchmarks/SetOperations
158   main-is: SetOperations-IntSet.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-map
167   type: exitcode-stdio-1.0
168   hs-source-dirs: benchmarks/SetOperations
169   main-is: SetOperations-Map.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-set
178   type: exitcode-stdio-1.0
179   hs-source-dirs: benchmarks/SetOperations
180   main-is: SetOperations-Set.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 lookupge-intmap
189   type: exitcode-stdio-1.0
190   hs-source-dirs: benchmarks/LookupGE, .
191   main-is: IntMap.hs
192   other-modules:
193       Data.IntMap
194       Data.IntMap.Internal.DeprecatedDebug
195       Data.IntMap.Lazy
196       Data.IntMap.Strict
197       Data.IntSet.Internal
198       LookupGE_IntMap
199       Utils.Containers.Internal.BitUtil
200       Utils.Containers.Internal.StrictFold
201       Utils.Containers.Internal.StrictPair
202   ghc-options: -O2
203   cpp-options: -DTESTING
204   other-modules:
205     Data.IntMap.Internal
206   build-depends:
207     base >= 4.2 && < 5,
208     containers,
209     criterion >= 0.4.0 && < 1.3,
210     deepseq >= 1.1.0.0 && < 1.5,
211     ghc-prim
212
213 benchmark lookupge-map
214   type: exitcode-stdio-1.0
215   hs-source-dirs: benchmarks/LookupGE, .
216   main-is: Map.hs
217   other-modules:
218       Data.Map
219       Data.Map.Internal.Debug
220       Data.Map.Internal.DeprecatedShowTree
221       Data.Map.Lazy
222       Data.Map.Strict
223       Data.Map.Strict.Internal
224       Data.Set.Internal
225       LookupGE_Map
226       Utils.Containers.Internal.BitQueue
227       Utils.Containers.Internal.BitUtil
228       Utils.Containers.Internal.PtrEquality
229       Utils.Containers.Internal.StrictFold
230       Utils.Containers.Internal.StrictMaybe
231       Utils.Containers.Internal.StrictPair
232   ghc-options: -O2
233   cpp-options: -DTESTING
234   other-modules:
235     Data.Map.Internal
236   build-depends:
237     base >= 4.2 && < 5,
238     containers,
239     criterion >= 0.4.0 && < 1.3,
240     deepseq >= 1.1.0.0 && < 1.5,
241     ghc-prim
242
243 -------------------
244 -- T E S T I N G --
245 -------------------
246
247 -- Every test-suite contains the build-depends and options of the library,
248 -- plus the testing stuff.
249
250 Test-suite map-lazy-properties
251     hs-source-dirs: tests, .
252     main-is: map-properties.hs
253     other-modules:
254         Data.Map.Internal
255         Data.Map.Internal.Debug
256         Data.Map.Internal.DeprecatedShowTree
257         Data.Map.Lazy
258         Data.Map.Merge.Lazy
259         Data.Set
260         Data.Set.Internal
261         Utils.Containers.Internal.BitQueue
262         Utils.Containers.Internal.BitUtil
263         Utils.Containers.Internal.PtrEquality
264         Utils.Containers.Internal.StrictFold
265         Utils.Containers.Internal.StrictMaybe
266         Utils.Containers.Internal.StrictPair
267     type: exitcode-stdio-1.0
268     cpp-options: -DTESTING
269
270     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
271     ghc-options: -O2
272     other-extensions: CPP, BangPatterns
273     include-dirs: include
274
275     build-depends:
276         HUnit,
277         QuickCheck,
278         test-framework,
279         test-framework-hunit,
280         test-framework-quickcheck2,
281         transformers
282
283 Test-suite map-strict-properties
284     hs-source-dirs: tests, .
285     main-is: map-properties.hs
286     other-modules:
287         Data.Map.Internal
288         Data.Map.Internal.Debug
289         Data.Map.Internal.DeprecatedShowTree
290         Data.Map.Merge.Strict
291         Data.Map.Strict
292         Data.Map.Strict.Internal
293         Data.Set
294         Data.Set.Internal
295         Utils.Containers.Internal.BitQueue
296         Utils.Containers.Internal.BitUtil
297         Utils.Containers.Internal.PtrEquality
298         Utils.Containers.Internal.StrictFold
299         Utils.Containers.Internal.StrictMaybe
300         Utils.Containers.Internal.StrictPair
301     type: exitcode-stdio-1.0
302     cpp-options: -DTESTING -DSTRICT
303
304     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
305     ghc-options: -O2
306     other-extensions: CPP, BangPatterns
307     include-dirs: include
308
309     build-depends:
310         HUnit,
311         QuickCheck,
312         test-framework,
313         test-framework-hunit,
314         test-framework-quickcheck2,
315         transformers
316
317 Test-suite bitqueue-properties
318     hs-source-dirs: tests, .
319     main-is: bitqueue-properties.hs
320     other-modules:
321         Utils.Containers.Internal.BitQueue
322         Utils.Containers.Internal.BitUtil
323     type: exitcode-stdio-1.0
324     cpp-options: -DTESTING
325
326     build-depends: base >= 4.3 && < 5, ghc-prim
327     ghc-options: -O2
328     other-extensions: CPP, BangPatterns
329     include-dirs: include
330
331     build-depends:
332         QuickCheck,
333         test-framework,
334         test-framework-quickcheck2
335
336 Test-suite set-properties
337     hs-source-dirs: tests, .
338     main-is: set-properties.hs
339     other-modules:
340         Data.IntSet
341         Data.IntSet.Internal
342         Data.Set
343         Data.Set.Internal
344         Utils.Containers.Internal.BitUtil
345         Utils.Containers.Internal.PtrEquality
346         Utils.Containers.Internal.StrictFold
347         Utils.Containers.Internal.StrictPair
348     type: exitcode-stdio-1.0
349     cpp-options: -DTESTING
350
351     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
352     ghc-options: -O2
353     other-extensions: CPP, BangPatterns
354     include-dirs: include
355
356     build-depends:
357         HUnit,
358         QuickCheck,
359         test-framework,
360         test-framework-hunit,
361         test-framework-quickcheck2,
362         transformers
363
364 Test-suite intmap-lazy-properties
365     hs-source-dirs: tests, .
366     main-is: intmap-properties.hs
367     other-modules:
368         Data.IntMap.Internal
369         Data.IntMap.Internal.Debug
370         Data.IntMap.Internal.DeprecatedDebug
371         Data.IntMap.Lazy
372         Data.IntSet
373         Data.IntSet.Internal
374         Utils.Containers.Internal.BitUtil
375         Utils.Containers.Internal.StrictFold
376         Utils.Containers.Internal.StrictPair
377     type: exitcode-stdio-1.0
378     cpp-options: -DTESTING
379
380     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
381     ghc-options: -O2
382     other-extensions: CPP, BangPatterns
383     include-dirs: include
384
385     build-depends:
386         HUnit,
387         QuickCheck,
388         test-framework,
389         test-framework-hunit,
390         test-framework-quickcheck2
391
392 Test-suite intmap-strict-properties
393     hs-source-dirs: tests, .
394     main-is: intmap-properties.hs
395     other-modules:
396         Data.IntMap.Internal
397         Data.IntMap.Internal.Debug
398         Data.IntMap.Internal.DeprecatedDebug
399         Data.IntMap.Strict
400         Data.IntSet
401         Data.IntSet.Internal
402         Utils.Containers.Internal.BitUtil
403         Utils.Containers.Internal.StrictFold
404         Utils.Containers.Internal.StrictPair
405     type: exitcode-stdio-1.0
406     cpp-options: -DTESTING -DSTRICT
407
408     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
409     ghc-options: -O2
410     other-extensions: CPP, BangPatterns
411     include-dirs: include
412
413     build-depends:
414         HUnit,
415         QuickCheck,
416         test-framework,
417         test-framework-hunit,
418         test-framework-quickcheck2
419
420 Test-suite intset-properties
421     hs-source-dirs: tests, .
422     main-is: intset-properties.hs
423     other-modules:
424         Data.IntSet
425         Data.IntSet.Internal
426         Data.Set
427         Data.Set.Internal
428         Utils.Containers.Internal.BitUtil
429         Utils.Containers.Internal.PtrEquality
430         Utils.Containers.Internal.StrictFold
431         Utils.Containers.Internal.StrictPair
432     type: exitcode-stdio-1.0
433     cpp-options: -DTESTING
434
435     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
436     ghc-options: -O2
437     other-extensions: CPP, BangPatterns
438     include-dirs: include
439
440     build-depends:
441         HUnit,
442         QuickCheck,
443         test-framework,
444         test-framework-hunit,
445         test-framework-quickcheck2
446
447 Test-suite deprecated-properties
448     hs-source-dirs: tests, .
449     main-is: deprecated-properties.hs
450     other-modules:
451         Data.IntMap
452         Data.IntMap.Internal
453         Data.IntMap.Internal.DeprecatedDebug
454         Data.IntMap.Lazy
455         Data.IntMap.Strict
456         Data.IntSet.Internal
457         Data.Map
458         Data.Map.Internal
459         Data.Map.Internal.Debug
460         Data.Map.Internal.DeprecatedShowTree
461         Data.Map.Lazy
462         Data.Map.Strict
463         Data.Map.Strict.Internal
464         Data.Set.Internal
465         Utils.Containers.Internal.BitQueue
466         Utils.Containers.Internal.BitUtil
467         Utils.Containers.Internal.PtrEquality
468         Utils.Containers.Internal.StrictFold
469         Utils.Containers.Internal.StrictMaybe
470         Utils.Containers.Internal.StrictPair
471     type: exitcode-stdio-1.0
472     cpp-options: -DTESTING
473
474     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
475     ghc-options: -O2
476     other-extensions: CPP, BangPatterns
477     include-dirs: include
478
479     build-depends:
480         QuickCheck,
481         test-framework,
482         test-framework-quickcheck2
483
484 Test-suite seq-properties
485     hs-source-dirs: tests, .
486     main-is: seq-properties.hs
487     other-modules:
488         Data.Sequence
489         Data.Sequence.Internal
490         Utils.Containers.Internal.StrictPair
491     type: exitcode-stdio-1.0
492     cpp-options: -DTESTING
493
494     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
495     ghc-options: -O2
496     other-extensions: CPP, BangPatterns
497     include-dirs: include
498
499     build-depends:
500         QuickCheck,
501         test-framework,
502         test-framework-quickcheck2,
503         transformers
504
505 test-suite map-strictness-properties
506   hs-source-dirs: tests, .
507   main-is: map-strictness.hs
508   other-modules:
509       Data.Map.Internal
510       Data.Map.Internal.Debug
511       Data.Map.Internal.DeprecatedShowTree
512       Data.Map.Strict
513       Data.Map.Strict.Internal
514       Data.Set.Internal
515       Utils.Containers.Internal.BitQueue
516       Utils.Containers.Internal.BitUtil
517       Utils.Containers.Internal.PtrEquality
518       Utils.Containers.Internal.StrictFold
519       Utils.Containers.Internal.StrictMaybe
520       Utils.Containers.Internal.StrictPair
521   type: exitcode-stdio-1.0
522
523   build-depends:
524     array,
525     base >= 4.3 && < 5,
526     ChasingBottoms,
527     deepseq >= 1.2 && < 1.5,
528     QuickCheck >= 2.4.0.1,
529     ghc-prim,
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.IntSet.Internal
545       Utils.Containers.Internal.BitUtil
546       Utils.Containers.Internal.StrictFold
547       Utils.Containers.Internal.StrictPair
548   type: exitcode-stdio-1.0
549   other-extensions: CPP, BangPatterns
550
551   build-depends:
552     array,
553     base >= 4.3 && < 5,
554     ChasingBottoms,
555     deepseq >= 1.2 && < 1.5,
556     QuickCheck >= 2.4.0.1,
557     ghc-prim,
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.StrictFold
572       Utils.Containers.Internal.StrictPair
573   type: exitcode-stdio-1.0
574   other-extensions: CPP, BangPatterns
575
576   build-depends:
577     array,
578     base >= 4.3 && < 5,
579     ChasingBottoms,
580     deepseq >= 1.2 && < 1.5,
581     QuickCheck >= 2.4.0.1,
582     ghc-prim,
583     test-framework >= 0.3.3,
584     test-framework-quickcheck2 >= 0.2.9
585
586   ghc-options: -Wall
587   include-dirs: include