Difference semigroups and monoids.