Description
Semigroups with absorption.
Description
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
.