Poly::assign can now accept a range and the implementation of Poly::polyWithTermsDescending is now a bit simpler - there are no loops in there any more and what is sorted is no longer a set of pairs (term, index) pairs since the index was not being used anymore anyway.