Часто можно услышать их сравнение с «интерфейсами в java» или что-то в таком духе. На мой взгляд, это плохая аналогия. Тайпклассы больше напоминают свободные шаблонные функции с неопределённой для общего типа реализацией (ну или [взаимно]определенные через другие функции, но это уже детали), которые надо явно инстанциировать для своего типа.