It's not necessary to have a full Monoid; the Semigroup is enough