Multi-Parameter-Klassen

Eine Typklasse (Interface) ist ein einstelliges Prädikat. ein Typ erfüllt es (ist Instanz, implementiert es), oder nicht.

class Ord a where ... ; instance Ord Student where ...

Oft benötigt man mehrstellige Prädikate (Relationen)

class Brett b => Zug b z where ...
instance Zug Havannah Satz where ...
diese werden von Tupeln von Typen erfüllt (oder nicht).

(geht das in ,,klassischen`` OO-Sprachen?)

Man kann zusichern, daß die Relation eine Funktion ist (functional dependency):

class Problem p i b | (p, i) -> b



Johannes Waldmann 2006-06-22