он вообще может быть полезен? Наследование всегда создаёт слишком жесткие зависимости в коде, что мешает расширяемости. Какие есть соображения использовать трейты как интерфейсы, а не как классы типов? Зачем вообще все эти муки с вариативностью, если можно писать как на условном хацкеле?
Так тайпклассы в хаскелле это явно не пример для подражания. Чего стоят извращения с ньютайпами и орфанами, чтобы жсон кодек определить. Как раз тайпкласс - более жесткая привязка функциональности к типам данных, чем интерфейсы. Так как инстанс для типа обязательно/желательно иметь только один. Имплементаций интерфейса может быть сколько угодно. Очннь удобно.
Обсуждают сегодня