Trait Monoid
higher_cat
pub trait Monoid: Add + Default { }
A Monoid consists of a semigroup (the Add trait in Rust) and an empty value (the Default trait) plus the following laws:
Monoid
Add
Default
(x + y) + z == x + (y + z)
0 + a == a + 0 == a