General operations on sets
Documentation
class Eq a => Set a whereSource
A Set
is an *over-approximation* of a set of values. The class does not
care about how the set is interpreted, but it only makes sense to use
interpretations for which the operations are sound.
Union
Intersection
Set () | Approximates all sets as |
BoundedInt a => Set (Range a) | |
(Set a, Set b) => Set (a, b) | Set product |
(Set a, Set b) => Set (:> a b) | |
Type a => Set (EdgeSize role a) | |
(Set a, Set b, Set c) => Set (a, b, c) | Three-way product |
(Set a, Set b, Set c, Set d) => Set (a, b, c, d) | Four-way product |
intersections :: Set a => [a] -> aSource
fixedPoint :: Set a => (a -> a) -> a -> aSource
Take the fixed point of a monotonic function. The second argument is
an initial element. A sensible default for the initial element is
empty
.
indexedFixedPoint :: Set a => (Int -> a -> a) -> a -> (a, Int)Source
Much like fixedPoint
but keeps track of the number of iterations
in the fixed point iteration. Useful for defining widening operators.