Sstt.TuplesTuple components.
Tuples are a family of components indexed by an integer (the arity of the tuple). Type t represents sets finite or co-finite sets of tuple components of distinct arities. For instance, it can represent the type of all tuples execpt those of arity 2 and 4.
A compononet family is a set of components indexed by a values. For instances, tuples constitute a family of components indexed by their size. For instance, 3-tuples and 4-tuples behave similarly, but are distinct components that cannot be mixed (their intersection is empty).
module Comp = VDescr.Descr.Tuples.Compval mk : Comp.Atom.t -> tcomponents t returns a pair (cs,b) where cs are the tuple components explicitely present in t, and b is a boolean indicating whether components of other cardinalities are any (if b is true) or empty (if b is false).
destruct t returns a pair (b,cs) such that: if b is true, then t contains exactly the tuple components cs, and if b is false, then the negation of t contains exactly the tuple components cs.