Beispiel: Klassen für Brettspiele

class Brett b where
    dran   :: b -> Farbe
    gewonnen :: b -> Maybe Farbe
class Brett b => Zug b z where
    next :: b -> z -> Maybe b
        data Maybe b = Nothing | Just b
class Shaped b s where
    shape  :: b -> s
    shaped :: s -> b
replay :: ( Brett b, Zug b z , Shaped b s )
       => s -> [z] -> b



Johannes Waldmann 2005-06-08