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öglichclass T implements C { ... }
Johannes Waldmann
2011-01-18