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)