## discriminated union

The discriminated union of two sets A and B is

A + B = {(inA, a) | a in A} U {(inB, b)| b in B}

where inA and inB are arbitrary tags which specify which summand an element originates from.

A type (especially an algebraic data type) might be described as a discriminated union if it is a sum type whose objects consist of a tag to say which part of the union they belong to and a value of the corresponding type.