Вот я читаю Википедию: алгебраический тип данных - это сумма произведений типов. ГДе произведением почему-то называется рекорд из таких типов.
Ну так и что? В С объявляем юнион из структур с тегом. В лиспе - несколько структур и or.
Конструкторы и сопоставление с образцом - это уже лирика (утилиты, так скажем). Верно я понимаю определение АТД или нет?