range-set-list alternatives and similar packages
Based on the "data" category.
Alternatively, view range-set-list alternatives based on common mentions on social networks and blogs.
-
proto-lens
API for protocol buffers using modern Haskell language and library patterns. -
microlens
A lightweight (but compatible with ‘lens’) lenses library -
msgpack
Haskell implementation of MessagePack / msgpack.org[Haskell] -
extensible
Extensible records, variants, structs, effects, tangles -
file-embed
Use Template Haskell to embed file contents directly. -
base64-bytestring
Fast base64 encoding and decoding for Haskell. -
data-category
Library of categories, with categorical constructions on them -
interpolatedstring-perl6
QuasiQuoter for Perl6-style multi-line interpolated strings with q, qq and qc support. -
buffer-builder
Haskell library for efficiently building up buffers -
language-hcl
language-hcl contains HCL (Hashicorp Configuration Language) parsers and pretty-printers for the Haskell programming language -
phone-numbers
Incomplete bindings to libphonenumber for Haskell -
finite-typelits
A type inhabited by finitely many values, indexed by type-level naturals. -
attoparsec-iteratee
An adapter to convert attoparsec Parsers into blazing-fast Iteratees -
data-structure-inferrer
A program that analyzes source code with a data-structure wildcard and suggests the right one. -
syb-with-class
Fork of http://patch-tag.com/r/Saizan/syb-with-class -
filesystem-trees
Traverse and manipulate directories as lazy rose trees -
schedule-planner
Calculate an ideal schedule layout from a set of timeslots -
type-iso
Expresses isomorphic and injective relations between types. -
unamb-custom
Functional concurrency with unambiguous choice, using a custom scheduler. -
procrastinating-variable
Haskell values that cannot be evaluated immediately. -
resource-pool-catchio
A high-performance striped resource pooling implementation for Haskell
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of range-set-list or a related project?
README
range-set-list
A few trivial implementations of range sets.
You can find the package (and its documentation) on hackage.
This module is intended to be imported qualified, to avoid name clashes with Prelude functions, e.g.,
import Data.RangeSet.List (RSet)
import qualified Data.RangeSet.List as RSet
This package contains two implementations of exactly the same interface, plus one specialization, all of which provide exactly the same behavior:
- "Data.RangeSet.List" implements the simplest
RSet
based on list. Set construction and manipulation is most efficient for this version, but lookups may require a full list traversal. - "Data.RangeSet.Map" implements a slightly less simple
RSet
based on map. Construction and manipulation have more overhead in this version, but lookups are significantly faster, especially for large sets. - "Data.RangeSet.IntMap" is simply a specialization of "Data.RangeSet.Map" to Ints based on IntMap.
Compared to Data.Set
,
this module also imposes an Enum
constraint for many functions.
We must be able to identify consecutive elements to be able to glue and split ranges properly.
The implementation assumes that
x < succ x
pred x < x
and there aren't elements in between (not true for Float
and Double
).
Also succ
and pred
are never called for largest or smallest value respectively.