name: persistent-vector
version: 0.1.1
synopsis: A persistent sequence based on array mapped tries
license: BSD3
license-file: LICENSE
author: Tristan Ravitch
maintainer: tristan@nochair.net
category: Data
build-type: Simple
cabal-version: >=1.10
extra-source-files: README.md
homepage: https://github.com/travitch/persistent-vector
bug-reports: https://github.com/travitch/persistent-vector/issues
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
Data.Vector.Persistent.Unsafe
build-depends: base ==4.*, deepseq
hs-source-dirs: src
ghc-options: -Wall
ghc-prof-options: -auto-all
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,
test-framework,
test-framework-quickcheck2
benchmark pvBench
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: pvBench.hs
ghc-options: -Wall -O2
ghc-prof-options: -auto-all
build-depends: persistent-vector,
base == 4.*,
containers,
criterion >= 1 && < 1.2,
deepseq
source-repository head
type: git
location: git://github.com/travitch/persistent-vector.git