A signature for a commutative group (in the group-theory sense).
An implementation of this interface should have the following properties:
(a + b) + c = a + (b + c)
zero + a = a + zero = a
a
there exists a (unique) elt b
such that a + b = b + a =
zero
a + b = b + a
module type S : sig ... end