更高等级类型的GHC类型推断 - 分配给单一类型

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有没有其他特殊规则,它们在哪里记录?

小智 3

http://hackage.haskell.org/trac/ghc/ticket/5596与此处相关 - 我认为没有任何官方文档。