Monoid with negation.
This trait extends the requirements of
Semigroup to include a negation operator.
Several differential dataflow operators require negation in order to retract prior outputs, but
not quite as many as you might imagine.
The method of
std::ops::Neg, for types that do not implement