packages feed

persistent-vector-0.2.0: persistent-vector.cabal

name: persistent-vector
version: 0.2.0
synopsis: A persistent sequence based on array mapped tries
license: BSD3
license-file: LICENSE
author: Tristan Ravitch
maintainer: tristan@ravit.ch
category: Data
build-type: Simple
cabal-version: >=1.10
extra-source-files: README.md, ChangeLog.md
homepage: https://github.com/travitch/persistent-vector
bug-reports: https://github.com/travitch/persistent-vector/issues
tested-with: GHC == 7.10.2, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.2

description:
  This package provides persistent vectors based on array mapped
  tries.  The implementation is based on the persistent vectors used
  in clojure, but in a Haskell-style API.  The API is modeled after
  Data.Sequence from the containers library.
  .
  Technically, the element-wise operations are O(log(n)), but the
  underlying tree cannot be more than 7 or 8 levels deep so this is
  effectively constant time.
  .
  One change from the clojure implementation is that this version supports
  O(1) slicing, though it does cheat a little.  Slices retain references
  to elements that cannot be indexed.  These extra references (and the space
  they occupy) can be reclaimed by 'shrink'ing the slice.  This seems like
  a reasonable tradeoff, and, I believe, mirrors the behavior of the vector
  library.
  .
  Highlights:
  .
    * O(1) append element, indexing, updates, length, and slicing
  .
    * Reasonably compact representation

library
  default-language: Haskell2010
  exposed-modules: Data.Vector.Persistent
  other-modules: Data.Vector.Persistent.Array
  build-depends: base ==4.*,
                 deepseq >= 1 && < 1.5,
                 transformers >= 0.3 && < 0.6
  if !impl(ghc >= 8.0)
    build-depends: semigroups == 0.18.*
  hs-source-dirs: src
  ghc-options: -Wall
  if impl(ghc >= 8.0)
     ghc-options: -Wcompat

test-suite pvTests
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  main-is: pvTests.hs
  hs-source-dirs: tests
  ghc-options: -Wall
  build-depends: persistent-vector,
                 base == 4.*,
                 QuickCheck > 2.4 && < 2.15,
                 test-framework >= 0.6 && < 0.9,
                 test-framework-quickcheck2 >= 0.3 && < 0.4

benchmark pvBench
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: pvBench.hs
  ghc-options: -Wall -O2
  build-depends: persistent-vector,
                 base == 4.*,
                 containers,
                 criterion >= 1 && < 1.6,
                 deepseq

source-repository head
  type: git
  location: git://github.com/travitch/persistent-vector.git