In Haskell sind diese drei Dinge unabhängig
- Deklaration einer Typklasse (= Deklaration von abstrakten Methoden)
class C where { m :: ... }
- Deklaration eines Typs
(= Sammlung von Konstruktoren und konkreten Methoden)
data T = ...
- Instanz-Deklaration
(= Implementierung der abstrakten Methoden)
instance C T where { m = ... }
In Java sind 2 und 3 nur gemeinsam möglich
class T implements C { ... }
Johannes Waldmann
2014-07-10