Module documentation for 0.1.4

Monoid is a Semigroup glued with a neutral element
called mempty. In the same idea, Zero is a Semigroup
glued with an absorbing element called zero.

Keep in mind that Zero requires Semigroup. If you have
Semigroup defined to work with Monoid, you might end up
with no way to implement Zero. That’s why the Semigroup
instance for Maybe is confusing, because it relies on
Monoid, and cannot be used with Zero. Success is the
Zero equivalent of Maybe + Monoid.