algebraic data type
in computer programming, a type formed by combining other types
product type
the result of multiplying types in type theory
tagged union
data structure used to hold a value that could take on several different, but fixed, types
in computer programming, a type formed by combining other types