New: Semigroup

A semigroup is a type together with a closed associative binary operation.