typeklassen
Typeklassen zijn een concept in statisch getypeerde functionele programmeertalen, met name Haskell. Ze bieden ad-hoc polymorfisme door een mechanisme waarmee een verzameling operaties op verschillende types kan worden toegepast, zolang die types aan een bepaalde interface voldoen. Een typeklasse definieert een contract: een reeks methoden die beschikbaar zijn voor elk type dat de klasse implementeert. Een type wordt een instantie genoemd als het aan de vereisten voldoet en de bijbehorende implementaties levert.
Een bekend voorbeeld is de typeklasse Eq, die gelijkheidsbewerkingen definieert. Types zoals Int en Bool kunnen
In Haskell worden functies vaak gedefinieerd met typeconstraints, bijvoorbeeld een functie die optelling uitvoert met (+) :: Num
Typeklassen maken generieke code mogelijk die werkt voor alle types die aan de interface voldoen, zonder dat
Andere talen kennen soortgelijke mechanismen onder verschillende namen, zoals traits in Rust of interfaces in talen
Historisch gezien zijn typeklassen een kernidee van Haskell en hebben ze invloed gehad op het bredere veld
---