Я долго программист OO и новичок в функциональном программировании. Из моего небольшого воздействия алгебраические типы данных выглядят только как особый случай наследования для меня, где у вас есть только одна иерархия уровней, а суперкласс не может быть расширен за пределами модуля.
Итак, мой (потенциально немой) вопрос: если только ADT - это особый случай наследования (опять же это предположение может быть неправильным, пожалуйста, исправьте меня в этом случае), то почему наследование получает всю критику, и ADT получают все похвалы?
Спасибо.