Value.UnionSourceUnion of value abstractions.
This combiner implements a disjoint union between ๐ value abstractions ๐ฑโ, ..., ๐ฑโ. Each abstraction ๐ฑแตข represent values of types ๐แตข, such that: โ j โ i: ๐แตข โฉ ๐โฑผ = โ . The types represented by the combiner is ๐โ โช ... โช ๐โ.
The union is represented with a cartesian product. The concretization of a union of values is the union of the concretizations: ฮณ(vโ,...,vโ) = ฮณโ(vโ) โช ... โช ฮณโ(vโ).
module Make
(V1 : Sig.Abstraction.Value.VALUE)
(V2 : Sig.Abstraction.Value.VALUE) :
Sig.Abstraction.Value.VALUE with type t = V1.t * V2.tCreate a disjoint union of two value abstractions
Create a disjoint union of a list of value abstractions