The law is: next(t) .map { n => partialOrdering.lteq(t, n) && (!partialOrdering.equiv(t, n)) } .getOrElse(true)
The law is: next(t) .map { n => partialOrdering.lteq(t, n) && (!partialOrdering.equiv(t, n)) } .getOrElse(true)
Note Ordering extends PartialOrdering, so we are taking a weak constraint that some items can be ordered, and namely, the sequence of items returned by next is strictly increasing