[Haskell] compares :: Ord a => a -> a -> Ordering -> Ordering

J. Garrett Morris trevion at gmail.com
Tue Feb 14 20:53:32 EST 2006

On 2/14/06, Ben Rudiak-Gould <Benjamin.Rudiak-Gould at cl.cam.ac.uk> wrote:
> I just realized that the class Ord should have an additional method:
>    class Eq a => Ord a where
>      compares :: a -> a -> Ordering -> Ordering
>      compares x y d = case compare x y of { EQ -> d ; o -> o }
>      ...
> This would make writing Ord instances much easier:
>    instance (Ord a, Ord b, Ord c, Ord d) => Ord (a,b,c,d) where
>      compares (a1,b1,c1,d1) (a2,b2,c2,d2) =
>        compares a1 a2 . compares b1 b2 . compares c1 c2 . compares d1 d2

I think you meant compare d1 d2 for that last one.

Would there be any advantage to this being a member of Ord instead of
just a function in the prelude?


We have lingered in the chambers of the sea	
By sea-girls wreathed with seaweed red and brown
Till human voices wake us, and we drown.

More information about the Haskell mailing list