pomaps alternatives and similar packages
Based on the "Data Structures" category.
Alternatively, view pomaps alternatives based on common mentions on social networks and blogs.
-
Agda
Agda is a dependently typed programming language / interactive theorem prover. -
vinyl
Extensible Records for Haskell. Pull requests welcome! Come visit us on #vinyl on freenode. -
repa-scalar
High performance, regular, shape polymorphic parallel arrays. -
repa-array
High performance, regular, shape polymorphic parallel arrays. -
repa-convert
High performance, regular, shape polymorphic parallel arrays. -
parameterized-utils
A set of utilities for using indexed types including containers, equality, and comparison. -
ethereum-client-haskell
A Haskell version of an Ethereum client -
type-level-sets
Type-level sets for Haskell (with value-level counterparts and various operations) -
justified-containers
Standard containers, with keys that carry type-level proofs of their own presence. -
bytestring-trie
An efficient finite map from (byte)strings to values. -
knit
Ties the knot on data structures that reference each other by unique keys -
nonempty-containers
Efficient non-empty variants of containers data types, with full API -
claferIG
Support for reasoning on Clafer models by instantiation and counter example generation. -
igraph
Incomplete Haskell bindings to the igraph library (which is written in C) -
selections
Haskell Package for operating with selections over an underlying functor -
map-syntax
Syntax sugar and explicit semantics for statically defined maps
Static code analysis for 29 languages.
Do you think we are missing an alternative of pomaps or a related project?
README
pomaps

Reasonably fast maps (and possibly sets) based on keys satisfying PartialOrd
.
This package tries to load off as much work as possible to the excellent containers
library, in order to achieve acceptable performance.
The interface is kept as similar to Data.Map.{Strict,Lazy}
as possible, which is an excuse for somewhat lacking documentation.
POMap
s basically store a decomposition of totally ordered chains (e.g. something Map
s can handle).
Functionality and strictness properties should be pretty much covered by the testsuite.
But it's not battle-tested yet, so if you encounter space leaks in the implementation, let me know.
A rather naive implementation leads to O(w*n*log n)
lookups, where w
is the width of the decomposition (which should be the size of the biggest anti-chain).
This is enough for me at the moment to get things going, but there is room for improvement (Sorting and Selection in Posets).
Let me know if things are too slow and I'll see what I can do!