class Semigroup a where
  (<>) :: a -> a -> a

Monoid