The persistent-vector package

[Tags: bsd3, library]

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 shrinking the slice. This seems like a reasonable tradeoff, and, I believe, mirrors the behavior of the vector library.



Versions0.1.0.0,,, 0.1.1
Change logNone available
Dependenciesbase (==4.*), deepseq
AuthorTristan Ravitch
Home page
Bug tracker
Source repositoryhead: git clone git://
UploadedWed Apr 22 03:37:26 UTC 2015 by TristanRavitch
Downloads420 total (29 in last 30 days)
StatusDocs available [build log]
Last success reported on 2015-04-22 [all 1 reports]




Maintainers' corner

For package maintainers and hackage trustees