Provide Semigroup
Monoid -> Semigroup