pomaps-0.0.2.0: pomaps.cabal
name: pomaps
version: 0.0.2.0
synopsis: Maps and sets of partial orders
category: Data Structures
homepage: https://github.com/sgraf812/pomaps#readme
bug-reports: https://github.com/sgraf812/pomaps/issues
maintainer: Sebastian Graf <sgraf1337@gmail.com>
license: MIT
license-file: LICENSE.md
build-type: Simple
cabal-version: >= 1.10
extra-source-files:
CHANGELOG.md
LICENSE.md
stack.yaml
description:
Maps (and sets) indexed by keys satisfying <https://hackage.haskell.org/package/lattices/docs/Algebra-PartialOrd.html#t:PartialOrd PartialOrd>.
.
The goal is to provide asymptotically better data structures than simple association lists or lookup tables.
Asymptotics depend on the partial order used as keys, its width /w/ specifically (the size of the biggest anti-chain).
.
For partial orders of great width, this package won't provide any benefit over using association lists, so benchmark for your use-case!
source-repository head
type: git
location: https://github.com/sgraf812/pomaps
flag no-lattices
description: Don't depend on the lattices package and extract the PartialOrd class.
default: False
library
hs-source-dirs:
src
ghc-options: -Wall
build-depends:
base >= 4.6.0.0 && < 4.12
-- oneShot
, ghc-prim >= 0.4 && < 0.6
, deepseq >= 1.1 && < 1.5
-- We depend on the internal modules of containers,
-- so we have to track development really close.
-- Data.Map.Internal is only available since 0.5.9,
-- of which 0.5.9.2 is the first safe version
, containers >= 0.5.9.2 && <= 0.6.0.1
if !flag(no-lattices)
build-depends:
-- We need PartialOrd instances for ()
lattices >= 1.7 && < 2
exposed-modules:
Data.POMap.Internal
Data.POMap.Lazy
Data.POMap.Strict
Data.POSet
Data.POSet.Internal
if flag(no-lattices)
hs-source-dirs:
lattices
exposed-modules:
Algebra.PartialOrd
default-language: Haskell2010
test-suite unittests
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
tests
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, containers >= 0.5.9.2
, pomaps
, tasty >= 0.11
, tasty-hspec >= 1.1
, tasty-quickcheck
, ChasingBottoms
if !flag(no-lattices)
build-depends:
lattices < 2
other-modules:
Data.POMap.Arbitrary
Data.POMap.Divisibility
Data.POMap.Properties
Data.POMap.Strictness
default-language: Haskell2010
test-suite doctests
type: exitcode-stdio-1.0
main-is: doctest-driver.hs
hs-source-dirs:
tests
ghc-options: -threaded
build-depends:
base >4 && <5
, doctest
, Glob
default-language: Haskell2010
benchmark pomaps-benchmarks
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
bench
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, pomaps
, criterion
, deepseq
, random
, vector
if !flag(no-lattices)
build-depends:
lattices < 2
default-language: Haskell2010