Я бы тоже склонялся к 1, но я его библиотеку подробно не изучал
Я бы на самом деле даже без TH это использовал
Я профит от этого вижу в том что вся механика проверки предикатов становится автоматической (не надо руками Смарт конструкторы писать), программисту гарантируется что все значения хорошие, и появляется возможность делать всякие интересности с предикатами типо автоматически вставлять их описание в документацию или автоматически проверять предикаты когда например refined типы как поле джейсона декодишь
Спасибо за мнение. Совпадает с моими ощущениями.
Я много думал, после того как прочитал ответ
@kana_sama, и тоже пришёл к выводу что TH здесь скорее "шашечки, чем ехать".
> не надо руками Смарт конструкторы писать
Но надо дописывать предикаты, если их нет. А для конкретных приложений их может легко не быть. Мне некоторое время казалось, что нет разницы делать валидацию в предикате или в смарт-конструкторе. Потом, я пришёл к выводу что предикаты лучше, потому что их можно композить.
В целом, однако, остаётся впечатление что это выходит за пределы "boring Haskell" и больше игрушечки. Но, опыта у меня ноль, видно будет потом.