semigroup instances, monoid for Op