Typenklasse
Typenklasse, oder type class, ist ein Konzept in Typsystemen, das Ad-hoc-Polymorphie ermöglicht. Sie definiert eine Schnittstelle, das heißt eine Menge von Operationen, die ein Typ bereitstellen muss, um als Mitglied der Typenklasse zu gelten. Ein Typ wird durch Angabe einer Instanz zu einer Typenklasse, indem er konkrete Implementierungen der geforderten Operationen bereitstellt. Anschließend können Funktionen, die auf Typen mit dieser Typenklasse arbeiten, mit Werten dieses Typs verwendet werden.
Typenklassen legen fest, welche Operationen verfügbar sind, und ermöglichen so generische Funktionen, die für alle Typen
Es existieren Konzepte wie Minimal Concrete Definitions, die festlegen, welche Methoden mindestens implementiert werden müssen, sowie
Im Vergleich zu Schnittstellen in objektorientierten Sprachen handelt es sich bei Typenklassen um Compile-Time-Mechanismen, die Typkontexte