name: containers
version: 0.6.0.1
license: BSD3
license-file: LICENSE
maintainer: libraries@haskell.org
bug-reports: https://github.com/haskell/containers/issues
synopsis: Assorted concrete container types
category: Data Structures
description:
    .
    This package contains efficient general-purpose implementations
    of various immutable container types including sets, maps, sequences,
    trees, and graphs.
    .
    For a walkthrough of what this package provides with examples of common
    operations see the [containers
    introduction](https://haskell-containers.readthedocs.io).
    .
    The declared cost of each operation is either worst-case or amortized, but
    remains valid even if structures are shared.

build-type: Simple
cabal-version:  >=1.8
extra-source-files:
    include/containers.h
    tests/Makefile
    tests/*.hs
    benchmarks/Makefile
    benchmarks/bench-cmp.pl
    benchmarks/bench-cmp.sh
    benchmarks/*.hs
    benchmarks/SetOperations/Makefile
    benchmarks/SetOperations/*.hs
    benchmarks/LookupGE/Makefile
    benchmarks/LookupGE/*.hs
    changelog.md

source-repository head
    type:     git
    location: http://github.com/haskell/containers.git

Library
    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5
    if impl(ghc)
        build-depends: ghc-prim

    ghc-options: -O2 -Wall

    other-extensions: CPP, BangPatterns

    exposed-modules:
        Data.Containers.ListUtils
        Data.IntMap
        Data.IntMap.Lazy
        Data.IntMap.Strict
        Data.IntMap.Internal
        Data.IntMap.Internal.Debug
        Data.IntMap.Merge.Lazy
        Data.IntMap.Merge.Strict
        Data.IntSet.Internal
        Data.IntSet
        Data.Map
        Data.Map.Lazy
        Data.Map.Merge.Lazy
        Data.Map.Strict.Internal
        Data.Map.Strict
        Data.Map.Merge.Strict
        Data.Map.Internal
        Data.Map.Internal.Debug
        Data.Set.Internal
        Data.Set
        Data.Graph
        Data.Sequence
        Data.Sequence.Internal
        Data.Sequence.Internal.Sorting
        Data.Tree
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.BitQueue
        Utils.Containers.Internal.StrictPair

    other-modules:
        Utils.Containers.Internal.State
        Utils.Containers.Internal.StrictMaybe
        Utils.Containers.Internal.PtrEquality
        Utils.Containers.Internal.Coercions
    if impl(ghc)
      other-modules:
        Utils.Containers.Internal.TypeError
        Data.Map.Internal.DeprecatedShowTree
        Data.IntMap.Internal.DeprecatedDebug

    include-dirs: include

-----------------------------
-- B E N C H M A R K I N G --
-----------------------------

benchmark intmap-benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks
  main-is: IntMap.hs
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5

benchmark intset-benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks
  main-is: IntSet.hs
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5

benchmark map-benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks
  main-is: Map.hs
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5,
    transformers

benchmark sequence-benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks
  main-is: Sequence.hs
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5,
    random < 1.2,
    transformers

benchmark set-benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks
  main-is: Set.hs
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5

benchmark set-operations-intmap
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/SetOperations
  main-is: SetOperations-IntMap.hs
  other-modules: SetOperations
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3

benchmark set-operations-intset
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/SetOperations
  main-is: SetOperations-IntSet.hs
  other-modules: SetOperations
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3

benchmark set-operations-map
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/SetOperations
  main-is: SetOperations-Map.hs
  other-modules: SetOperations
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3

benchmark set-operations-set
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/SetOperations
  main-is: SetOperations-Set.hs
  other-modules: SetOperations
  ghc-options: -O2
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3

benchmark lookupge-intmap
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/LookupGE, .
  main-is: IntMap.hs
  other-modules:
      Data.IntMap
      Data.IntMap.Internal.DeprecatedDebug
      Data.IntMap.Lazy
      Data.IntMap.Strict
      Data.IntSet.Internal
      LookupGE_IntMap
      Utils.Containers.Internal.BitUtil
      Utils.Containers.Internal.StrictPair
      Utils.Containers.Internal.TypeError
  ghc-options: -O2
  cpp-options: -DTESTING
  other-modules:
    Data.IntMap.Internal
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5,
    ghc-prim

benchmark lookupge-map
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks/LookupGE, .
  main-is: Map.hs
  other-modules:
      Data.Map
      Data.Map.Internal.Debug
      Data.Map.Internal.DeprecatedShowTree
      Data.Map.Lazy
      Data.Map.Strict
      Data.Map.Strict.Internal
      Data.Set.Internal
      LookupGE_Map
      Utils.Containers.Internal.BitQueue
      Utils.Containers.Internal.BitUtil
      Utils.Containers.Internal.PtrEquality
      Utils.Containers.Internal.StrictMaybe
      Utils.Containers.Internal.StrictPair
  ghc-options: -O2
  cpp-options: -DTESTING
  other-modules:
    Data.Map.Internal
  build-depends:
    base >= 4.6 && < 5,
    containers,
    criterion >= 0.4.0 && < 1.3,
    deepseq >= 1.1.0.0 && < 1.5,
    ghc-prim

-------------------
-- T E S T I N G --
-------------------

-- Every test-suite contains the build-depends and options of the library,
-- plus the testing stuff.

Test-suite map-lazy-properties
    hs-source-dirs: tests, .
    main-is: map-properties.hs
    other-modules:
        Data.Map.Internal
        Data.Map.Internal.Debug
        Data.Map.Internal.DeprecatedShowTree
        Data.Map.Lazy
        Data.Map.Merge.Lazy
        Data.Set
        Data.Set.Internal
        Utils.Containers.Internal.BitQueue
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.PtrEquality
        Utils.Containers.Internal.StrictMaybe
        Utils.Containers.Internal.StrictPair
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2,
        transformers

Test-suite map-strict-properties
    hs-source-dirs: tests, .
    main-is: map-properties.hs
    other-modules:
        Data.Map.Internal
        Data.Map.Internal.Debug
        Data.Map.Internal.DeprecatedShowTree
        Data.Map.Merge.Strict
        Data.Map.Strict
        Data.Map.Strict.Internal
        Data.Set
        Data.Set.Internal
        Utils.Containers.Internal.BitQueue
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.PtrEquality
        Utils.Containers.Internal.StrictMaybe
        Utils.Containers.Internal.StrictPair
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING -DSTRICT

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2,
        transformers

Test-suite bitqueue-properties
    hs-source-dirs: tests, .
    main-is: bitqueue-properties.hs
    other-modules:
        Utils.Containers.Internal.BitQueue
        Utils.Containers.Internal.BitUtil
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-quickcheck2

Test-suite set-properties
    hs-source-dirs: tests, .
    main-is: set-properties.hs
    other-modules:
        Data.IntSet
        Data.IntSet.Internal
        Data.Set
        Data.Set.Internal
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.PtrEquality
        Utils.Containers.Internal.StrictPair
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2,
        transformers

Test-suite intmap-lazy-properties
    hs-source-dirs: tests, .
    main-is: intmap-properties.hs
    other-modules:
        Data.IntMap.Internal
        Data.IntMap.Internal.Debug
        Data.IntMap.Internal.DeprecatedDebug
        Data.IntMap.Lazy
        Data.IntSet
        Data.IntSet.Internal
        IntMapValidity
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.StrictPair
        Utils.Containers.Internal.TypeError
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2

Test-suite intmap-strict-properties
    hs-source-dirs: tests, .
    main-is: intmap-properties.hs
    other-modules:
        Data.IntMap.Internal
        Data.IntMap.Internal.Debug
        Data.IntMap.Internal.DeprecatedDebug
        Data.IntMap.Strict
        Data.IntSet
        Data.IntSet.Internal
        IntMapValidity
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.StrictPair
        Utils.Containers.Internal.TypeError
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING -DSTRICT

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2

Test-suite intset-properties
    hs-source-dirs: tests, .
    main-is: intset-properties.hs
    other-modules:
        Data.IntSet
        Data.IntSet.Internal
        Data.Set
        Data.Set.Internal
        IntSetValidity
        Utils.Containers.Internal.BitUtil
        Utils.Containers.Internal.PtrEquality
        Utils.Containers.Internal.StrictPair
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        HUnit,
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-hunit,
        test-framework-quickcheck2

Test-suite seq-properties
    hs-source-dirs: tests, .
    main-is: seq-properties.hs
    other-modules:
        Data.Sequence
        Data.Sequence.Internal
        Utils.Containers.Internal.StrictPair
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-quickcheck2,
        transformers

Test-suite tree-properties
    hs-source-dirs: tests, .
    main-is: tree-properties.hs
    other-modules:
        Data.Tree
    type: exitcode-stdio-1.0
    cpp-options: -DTESTING

    build-depends: base >= 4.6 && < 5, array >= 0.4.0.0, deepseq >= 1.2 && < 1.5, ghc-prim
    ghc-options: -O2
    other-extensions: CPP, BangPatterns
    include-dirs: include

    build-depends:
        QuickCheck >= 2.7.1,
        test-framework,
        test-framework-quickcheck2,
        transformers

test-suite map-strictness-properties
  hs-source-dirs: tests, .
  main-is: map-strictness.hs
  other-modules:
      Data.Map.Internal
      Data.Map.Internal.Debug
      Data.Map.Internal.DeprecatedShowTree
      Data.Map.Strict
      Data.Map.Strict.Internal
      Data.Set.Internal
      Utils.Containers.Internal.BitQueue
      Utils.Containers.Internal.BitUtil
      Utils.Containers.Internal.PtrEquality
      Utils.Containers.Internal.StrictMaybe
      Utils.Containers.Internal.StrictPair
  type: exitcode-stdio-1.0

  build-depends:
    array >= 0.4.0.0,
    base >= 4.6 && < 5,
    ChasingBottoms,
    deepseq >= 1.2 && < 1.5,
    QuickCheck >= 2.7.1,
    ghc-prim,
    test-framework >= 0.3.3,
    test-framework-quickcheck2 >= 0.2.9

  ghc-options: -Wall
  other-extensions: CPP, BangPatterns
  include-dirs: include

test-suite intmap-strictness-properties
  hs-source-dirs: tests, .
  main-is: intmap-strictness.hs
  other-modules:
      Data.IntMap.Internal
      Data.IntMap.Internal.DeprecatedDebug
      Data.IntMap.Strict
      Data.IntSet.Internal
      Utils.Containers.Internal.BitUtil
      Utils.Containers.Internal.StrictPair
      Utils.Containers.Internal.TypeError
  type: exitcode-stdio-1.0
  other-extensions: CPP, BangPatterns

  build-depends:
    array >= 0.4.0.0,
    base >= 4.6 && < 5,
    ChasingBottoms,
    deepseq >= 1.2 && < 1.5,
    QuickCheck >= 2.7.1,
    ghc-prim,
    test-framework >= 0.3.3,
    test-framework-quickcheck2 >= 0.2.9

  ghc-options: -Wall
  include-dirs: include

test-suite intset-strictness-properties
  hs-source-dirs: tests, .
  main-is: intset-strictness.hs
  other-modules:
      Data.IntSet
      Data.IntSet.Internal
      Utils.Containers.Internal.BitUtil
      Utils.Containers.Internal.StrictPair
  type: exitcode-stdio-1.0
  other-extensions: CPP, BangPatterns

  build-depends:
    array >= 0.4.0.0,
    base >= 4.6 && < 5,
    ChasingBottoms,
    deepseq >= 1.2 && < 1.5,
    QuickCheck >= 2.7.1,
    ghc-prim,
    test-framework >= 0.3.3,
    test-framework-quickcheck2 >= 0.2.9

  ghc-options: -Wall
  include-dirs: include

test-suite listutils-properties
  hs-source-dirs: tests, .
  main-is: listutils-properties.hs
  other-modules:
      Data.Containers.ListUtils
  type: exitcode-stdio-1.0

  build-depends:
    base >= 4.6 && < 5,
    ChasingBottoms,
    deepseq >= 1.2 && < 1.5,
    QuickCheck >= 2.7.1,
    ghc-prim,
    test-framework >= 0.3.3,
    test-framework-quickcheck2 >= 0.2.9

  ghc-options: -Wall
  include-dirs: include
