特设多态的类型系统构造。这是通过向参数多态类型的类型变量增加约束完成的。这种约束典型的涉及到一个类型类codice_1和一个codice_2，并意味着codice_2所能实例化的类型，其成员必须支持关联于codice_1的重载运算。类型类首先在Haskell中实现，当时和Stephen Blott提出它，作为对Standard ML的“eqtypes”的扩展，并且最初构想为以本原方式实现重载算术及等式算符的一种途径。对比于Standard ML的“eqtypes”，在Haskell中通过使用类型类重载