Dominic: SemiGroup -> Semigroup