combinatorics
abelian
CMSMonoid