class Semigroup a => Monoid a where
  mempty :: a

Semigroup