我不明白为什么会这样,指的是:Rank2Types的目的是什么?-> @dfeuer 解释:
... 要求参数是多态的不仅允许它与多种类型一起使用;它还限制了该函数可以用它的参数做什么以及它如何产生它的结果......
f :: (forall a . [a] -> a) -> IO ()
...实际上,返回不在给定列表中的元素的任何函数都不会进行类型检查
在对等级 N 类型的任何解释中,我都没有看到描述的这种效果(或好处),大部分时间是关于让被调用者选择类型等的故事……这对我来说很清楚且易于掌握,但是我看不出我们可以通过哪种优点(仅扩展等级)来控制/限制功能域(和共同域)......
如果有人可以更深入地了解这里涉及的 rankN 机制。谢谢