Подтвердить что ты не робот

Как отлаживать программы уровня

Я пытаюсь выполнить какое-то программирование на уровне типа hoopy, и оно просто не работает. Я разрываю свои волосы, пытаясь понять, почему черт GHC полностью не в состоянии вывести типу подписей, которые я хочу.

Есть ли способ заставить GHC сказать мне, что он делает?

Я попробовал -ddump-tc, который просто печатает окончательные сигнатуры типа. (Да, они ошибаются. Спасибо, я уже это знал.)

Я также пробовал -ddump-tc-trace, который выгружает ~ 70KB непонятной тарабарщины. (В частности, я не вижу ни одного пользовательского идентификатора, упомянутого где угодно.)

Мой код настолько близок к работе, но каким-то образом появляется дополнительная переменная типа. По какой-то причине GHC не может видеть, что эта переменная должна быть полностью определена. Действительно, если я вручную напишу пятимильную подпись, GHC с радостью примет ее. Так что я явно просто пропускаю ограничение где-то... но где?!? > _ & Л;

4b9b3361