kinder
macro_rules! monoid { ($t:ident) => { ... }; }
A macro to implement monoid for Semigroups which have a new method