
25 Jul
2006
25 Jul
'06
12:34 p.m.
I am trying to derive MyOrd class from Eq (Prelude):
class Eq a => MyOrd a where (%<=), (%>), (%>=) :: a -> a -> Bool x %<= y = (x < y || x == y) x %> y = y < x x %>= y = (y < x || x == y)
Q: What's wrong? Why 'Ord' gets into play here?
You are using < which is a function on types that instance the class Ord, so the compiler is telling you to add (Ord a) to the same place you have (Eq a) or don't use < or > or any function in the class Ord. You can the prelude and thus the Ord class and make your own < and > functions but you can't make them refer to the "real" < and > functions without Ord because that is where they live. Jared. -- http://www.updike.org/~jared/ reverse ")-:"