我试图进行一些类型级别的编程,它只是不起作用。我试图弄清楚为什么GHC完全无法推断出我想要的类型签名,我的头发被撕掉了。
有没有办法让GHC 告诉我它在做什么?
我尝试了-ddump-tc
,它只打印出最终类型的签名。 (是的,他们错了。谢谢,我已经知道了。)
我也尝试了-ddump-tc-trace
,它丢弃了大约70KB无法理解的乱码。 (特别是,我无法看到任何用户编写的标识符提到。)
我的代码如此接近正常工作,但不知何故,一个额外的类型变量不断出现。出于某种原因,GHC无法确定该变量应该完全确定。实际上,如果我手动编写五英里类型签名,GHC很乐意接受它。所以我显然只是错过某个地方的约束...... 但是在哪里?!> _<