Algebraic data type
In computer programming, particularly functional programming and type theory, an algebraic data type is a kind of composite type, i.e. a type formed by combining other types. Two common classes of algebraic types are product types—i.e. tuples and records—and sum types, also called tagged or disjoint unions or variant types.