[PostScript]
Semigroup: trait introduces __\circ __: T, T -> T asserts forall x, y, z: T (x \circ y) \circ z == x \circ (y \circ z) implies Associative