whups, wrong arity
eliminates the 3x repeated scan over the list in sort-by.  If we
decide that a stable sort isn't necessary, then the call to reverse()
in the middle is not needed