MIT licensed
Maintained by Sebastian Graf
This version can be pinned in stack with:pomaps-0.0.0.3@sha256:e6f89b9c53edd64fdf33f10e4a19048ed718b8830db9ff35fa3bb10751b138ad,3164

Module documentation for 0.0.0.3

pomaps Build Status Hackage

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.

POMaps basically store a decomposition of totally ordered chains (e.g. something Maps 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!

Changes

Change log

pomaps follows the PVP. The change log is available on GitHub.