Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Data.Range.RangeTree
Description
Deprecated: Use Data.Range.Algebra instead
Synopsis
- evaluate :: (Ord a, Enum a) => RangeTree a -> [Range a]
- data RangeTree a
- = RangeNode RangeOperation (RangeTree a) (RangeTree a)
- | RangeNodeInvert (RangeTree a)
- | RangeLeaf [Range a]
- data RangeOperation
Documentation
evaluate :: (Ord a, Enum a) => RangeTree a -> [Range a] Source #
Evaluates a Range Tree into the final set of ranges that it compresses down to. Use this whenever you want to finally evaluate your constructed Range Tree.
A Range Tree is a construct that can be built and then efficiently evaluated so that you can compress an entire tree of operations on ranges into a single range quickly. The only purpose of this tree is to allow efficient construction of range operations that can be evaluated as is required.
Constructors
RangeNode RangeOperation (RangeTree a) (RangeTree a) | Combine two range trees together with a single operation |
RangeNodeInvert (RangeTree a) | Invert a range tree, this is a |
RangeLeaf [Range a] | A leaf with a set of ranges that are collected together. |
data RangeOperation Source #
These are the operations that can join two disjunct lists of ranges together.
Constructors
RangeUnion | Represents the set union operation. |
RangeIntersection | Represents the set intersection operation. |
RangeDifference | Represents the set difference operation. |