Концепции для С++ из концепций TS недавно были объединены в магистраль GCC. Концепции позволяют ограничивать общий код, требуя, чтобы типы удовлетворяли условиям концепции (например, "Comparable" ).
Haskell имеет классы типов. Я не так хорошо знаком с Хаскеллом. Как связаны понятия и классы типов?