Я пытаюсь выполнить какое-то программирование на уровне типа hoopy, и оно просто не работает. Я разрываю свои волосы, пытаясь понять, почему черт GHC полностью не в состоянии вывести типу подписей, которые я хочу.
Есть ли способ заставить GHC сказать мне, что он делает?
Я попробовал -ddump-tc
, который просто печатает окончательные сигнатуры типа. (Да, они ошибаются. Спасибо, я уже это знал.)
Я также пробовал -ddump-tc-trace
, который выгружает ~ 70KB непонятной тарабарщины. (В частности, я не вижу ни одного пользовательского идентификатора, упомянутого где угодно.)
Мой код настолько близок к работе, но каким-то образом появляется дополнительная переменная типа. По какой-то причине GHC не может видеть, что эта переменная должна быть полностью определена. Действительно, если я вручную напишу пятимильную подпись, GHC с радостью примет ее. Так что я явно просто пропускаю ограничение где-то... но где?!? > _ & Л;