Per GHC.Classes (haddock-viewable from Data.Ord)
"The Haskell Report defines no laws for Ord. However, <= is
customarily expected to implement a non-strict partial order and have
the following properties:"
I propose that in the next report that the expected typeclass laws for
Ord be added. They're generally agreed upon/understood.
6.3.2 The Ord Classclass (Eq a) => Ord a wherecompare :: a -> a -> Ordering(<), (<=), (>=), (>) :: a -> a -> Boolmax, min :: a -> a -> acompare x y | x == y = EQ| x <= y = LT| otherwise = GTx <= y = compare x y /= GTx < y = compare x y == LTx >= y = compare x y /= LTx > y = compare x y == GT-- Note that (min x y, max x y) = (x,y) or (y,x)max x y | x <= y = y| otherwise = xmin x y | x <= y = x| otherwise = yThe Ord class is used for totally ordered datatypes. All basic datatypes except for functions, IO, and IOError, are instances of this class. Instances of Ord can be derived for any user-defined datatype whose constituent types are in Ord. The declared order of the constructors in the data declaration determines the ordering in derived Ord instances. The Ordering datatype allows a single comparison to determine the precise ordering of two objects.The default declarations allow a user to create an Ord instance either with a type-specific compare function or with type-specific == and <= functions.