
11 Jul
2002
11 Jul
'02
6:44 a.m.
Greetings. What is the difference between the following two scenarios: 1) class Eq a where (==) :: a -> a -> Bool class Eq a => Ord a where ( < ) :: a -> a -> Bool 2) class Eq a where (==) :: a -> a -> Bool class Ord a where (eq),( < ) :: a -> a -> Bool instance Ord a => Eq a where (==) = eq eq is just a rename for == to avoid the nameclash The second scenario resembles Russell's Paradox. Typeclass of a typeclass. Anyhow we are loosing orthogonality here. Thanks