Concise library containing fundamental algebraic data types: product, union and option.