according to the standard it is not guaranteed that compare objects are swapped.
(but i did fixed it)