monoid

Monoid

Monoid

Mathematically a Monoid is a Semigroup M such that

(∃u M) => (∀m M)(u*m = m*u = m)

When such an identity element u exists, it is necessarily unique.

Important

Contract: Monoid initializer parameters must have

  • mult closed and associative on reps

  • one an identity on reps, rep*one == rep == one*rep