A commutative semigroup is a semigroup where the order of arguments to
mappend does not matter.

  class Semigroup g => Commutative g
