Urn.WeightTypeInput signature of the functor Make.
A total ordering function over weights. compare x y should return zero if the weights x and y are equal, compare x y should be negative if x is less than y, and compare x y should be positive if x is greater than y.
val zero : tWeight zero value. It should be the case that forall x, add x zero = x.
Weight subtraction. It should be the inverse of add, i.e. forall x and y, sub (add x y) y equals x.