The law is: prev(t) .map { n => partialOrdering.lteq(n, t) && (!partialOrdering.equiv(t, n)) } .getOrElse(true)
The law is: prev(t) .map { n => partialOrdering.lteq(n, t) && (!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 prev is strictly decreasing