support new PartialOrd