Cli*_*ton 12 polymorphism haskell types
我之前曾问过这个问题,经过多次调查后我得出结论,GHC只适用于中缀$和..
对于这个问题,我假设GHC遵循RankNTypes中提到的系统-在仲裁等级中进一步阐述的Haskell Prime页面.
RankNTypes - Haskell Prime页面声明如下:
没有显式签名的参数变量在向上推断中被分配了单型,但是在向下检查中可以继承任意级别类型.
我假设"分配的monotypes"意味着通过将所有限定符移动到最外层,将rank-N类型转换为rank-1类型.
我也相信这是导致我提出上一个问题的异常类型错误的原因.
所以我有几个问题:
1)无论如何让GHC警告(或错误)隐式转换为monotypes?我之前的问题中的类型错误需要一段时间才能解决,转换为monotype的警告比类型错误更有帮助.
2)是否存在隐含的"分配给单一类型"是明智行为的情况,如果是这样,你能举个例子吗?
3)关于缀$和.,这些似乎都在GHC的特殊规则.这记录在哪里?GHC有没有其他特殊规则,它们在哪里记录?