tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk
Thu Jan 1 14:04:37 UTC 2015
On Thu, Jan 01, 2015 at 08:58:35AM -0500, oleg at okmij.org wrote:
> Tom Ellis wrote:
> > Is there a type with an Eq instance for which on Ord instance could not also
> > be provided (i.e. I'm interested in Clark's "converse")?
> Of course. One of the very many examples is Complex. One can say we
> can compare complex numbers, by their absolute value. That is true;
> however we end up in a position where compare x y returns EQ but x==y
> returns False.
I don't understand your objection. `Complex a` isomorphic to `(a, a)` which
can be totally ordered. (The complex field cannot be given a total order
*compatible with the field structure*, but that's not relevant to my
> In general, Ord represents total order. There are many structures on
> which total order cannot be established. Take nodes in the tree, the
> Tree data type. One can compare nodes by taking a parent to be less
> than any of its children. But then two brothers are not
> comparable. Searching for "partial orders" and pre-orders gives many
> more examples.
I think you may be missing the intent of my question. I am merely asking
whether there is a type which supports a (law abiding) Eq instance that
cannot support a (law abiding) Ord instance. Whether that Ord instance is
compatible with additional structures on that type is beside the point.
More information about the Haskell-Cafe