GeneratorFunction, isSemiGroup, isMonoid, etc.