monoid
GroupLaws