Monoid and Semigroup instances
Cleaning