Generalized algebraic data type

ウィキペディアから