Я нашел макрос defadt
в clojure.contrib.types . К сожалению, полезной документации по использованию ADT в clojure нет. Я часами гуглил и нашел крошечные фрагменты информации об этом. Что такое ADT в clojure? Как их использовать? Любая информация будет полезна :)