They also say that "[T]he Ord "typeclass" ... implements comparisons." But of course the typeclass itself doesn't implement comparisons. A typeclass defines an interface which its instances implement. Consider the Eq typeclass:
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
So to make a type an instances of Eq, we need to implement (==) and (/=) functions with the type signatures provided by the class. It's pretty obvious how this should go for the Bool type, so let's define that and make it an instance of Eq. data Bool = True | False
instance Eq Bool where
True == True = True
False == False = True
_ == _ = False
a /= b = not (a == b)
This is all covered very well by Learn You a Haskell [2].[1]: http://conal.net/blog/posts/everything-is-a-function-in-hask...
[2]: http://learnyouahaskell.com/making-our-own-types-and-typecla...