Typen können Instanzen von Typklassen sein.
(OO-Sprech: Klassen implementieren Interfaces)
Für vordefinierte Typen sind auch die meisten sinnvollen Instanzen vordefiniert
instance Ord Int ; instance Ord Char ; ...
weiter Instanzen kann man selbst deklarieren:
data Student = Student { vorname  :: String
                       , nachname :: String
                       , matrikel :: Int
                       }
instance Ord Student where 
  compare s  t = 
    compare (matrikel s) (matrikel t)