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