Monoid
Monoid
Type signature
public interface Monoid<T> : SemiGroup<T> {
T Empty
}
class (Semigroup a) <= Monoid a where
empty :: a
Monoid Laws:
The empty value doesn't change the meaning of a monoidal value.
a <> empty == a
empty <> a == a
Usage/Feature of semigroup:
Semigroup/Monoid are domain modeling tools.