packages feed

stm-hamt-1.2.2: stm-hamt.cabal

cabal-version: 3.0
name: stm-hamt
version: 1.2.2
synopsis: STM-specialised Hash Array Mapped Trie
description:
  A low-level data-structure,
  which can be used to implement higher-level interfaces like
  hash-map and hash-set.
  Such implementations are presented by the
  <http://hackage.haskell.org/package/stm-containers stm-containers>.

category: Data Structures, STM, Concurrency
homepage: https://github.com/nikita-volkov/stm-hamt
bug-reports: https://github.com/nikita-volkov/stm-hamt/issues
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2016, Nikita Volkov
license: MIT
license-file: LICENSE

common base
  default-language: Haskell2010
  default-extensions:
    Arrows
    BangPatterns
    BinaryLiterals
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    NoImplicitPrelude
    NoMonomorphismRestriction
    OverloadedStrings
    ParallelListComp
    PatternGuards
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeFamilies
    TypeOperators
    UnboxedTuples

library
  import: base
  hs-source-dirs: library
  exposed-modules:
    StmHamt.Hamt
    StmHamt.SizedHamt

  other-modules:
    StmHamt.Constructors.Branch
    StmHamt.Focuses
    StmHamt.IntOps
    StmHamt.ListT
    StmHamt.Prelude
    StmHamt.Types
    StmHamt.UnfoldlM

  build-depends:
    base >=4.9 && <5,
    deferred-folds >=0.9 && <0.10,
    focus >=1 && <1.1,
    hashable >=1.4.0.0 && <2,
    list-t >=1.0.1 && <1.1,
    primitive >=0.7 && <0.10,
    primitive-extras >=0.10.2 && <0.11,
    transformers >=0.5 && <0.7,

test-suite test
  import: base
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  other-modules:
    Main.Gens
    Main.Transaction

  build-depends:
    QuickCheck >=2.8.1 && <3,
    deferred-folds,
    focus,
    quickcheck-instances >=0.3.11 && <0.4,
    rerebase <2,
    stm-hamt,
    tasty >=0.12 && <2,
    tasty-hunit >=0.9 && <0.11,
    tasty-quickcheck >=0.9 && <0.12,

benchmark concurrent-insertion-bench
  import: base
  type: exitcode-stdio-1.0
  hs-source-dirs: concurrent-insertion-bench
  ghc-options:
    -O2
    -threaded
    -with-rtsopts=-N

  main-is: Main.hs
  build-depends:
    async >=2.0 && <3,
    criterion >=1.5 && <1.7,
    focus,
    free >=4.5 && <6,
    random >=1.2 && <2,
    rebase <2,
    stm-hamt,