据我所知,仅对于二阶类型,存在可决定的类型检查算法。 GHC 是否以某种方式利用了这一事实,并且是否有任何实际影响?对于二阶类型,是否也有主类型和类型推断算法?如果是,GHC 是否使用它?相比于 n 阶类型,二阶类型还有其他优势吗?
原则上,对于等级为2的类型,类型检查是可判定的。但是,这从未被包含在GHC中(过于复杂,不与类型系统的其他特性很好地结合)。因此,不行。Rank2Types已经被弃用(好吧,它没有给你警告,但它确实已经被弃用了),所以请使用RankNTypes。