|Portability||Abstract concept of a Monoid.|
Will be used in order to generate type classes for generic algebras.
An algebra is a vector space that also is a monoid.
Should we use the Monoid class from base library
despite its unfortunate method name
We expect a monoid to adher to associativity and the identity behaving decently. Nothing more, really.