
On Fri, 8 Feb 2019, Oliver Charles wrote:
On Fri, 8 Feb 2019, 12:20 am Henning Thielemann,
wrote: On Thu, 7 Feb 2019, Andrew Butterfield wrote:
> Imagine trying to define the obvious partial ordering on sets - i.e. > subset-or-equal using the Ord class. What should be the result, for > Instance Ord (Set Int) of > > compare (fromList [1]) (fromList [2]) or fromList [2] <= fromList [1] ?
Partial ordering means to me that the comparison function is partial. I.e. fromList [2] <= fromList [1] would be "undefined".__________________
Oh heavens no! It's very useful to ask whether two elements are comparable, that's a nightmare with this approach.
With the signature of 'compare' we can hardly do it better. That's why it is certainly better to leave Ord for total orderings and define class PartialOrd a where maybeCompare :: a -> a -> Maybe Ordering