12

我以前问过这个问题,经过大量调查后,我得出结论,GHC 仅适用于中缀$..

对于这个问题,我假设 GHC 遵循RankNTypes - Haskell Prime页面上提到的系统,该页面在 arbitary -rank中进一步详细说明。

RankNTypes - Haskell Prime页面声明如下:

没有显式签名的参数变量在向上推理中被分配为单型,但在向下检查中可以继承任意等级的类型。

我假设“分配的单型”意味着通过将所有限定符移动到最外层来将 rank-N 类型转换为 rank-1 类型。

我也相信这就是导致我问上一个问题的异常类型错误的原因。

所以我有几个问题:

1)无论如何让GHC警告(或错误)隐式转换为单型?我上一个问题中的类型错误需要一段时间才能解决,转换为单一类型的警告会比类型错误更有帮助。
2)是否存在隐含的“分配给单一类型”是明智行为的情况,如果是这样,你能举个例子吗?
3)关于中缀$.,这些似乎在GHC中有特殊规则。这是在哪里记录的?GHC 还有其他特殊规则吗?它们记录在哪里?

4

1 回答 1

3

http://hackage.haskell.org/trac/ghc/ticket/5596在这里是相关的 - 我认为没有任何官方文档。

于 2012-05-07T06:54:54.087 回答