是否有一些理论上的原因(例如类型检查或类型推断变得不确定)或实际原因(太难于正确实现)?
目前,我们可以换东西到newtype
像
newtype Pair a = Pair (a, a)
然后有 Pair :: * -> *
但是我们不能做这样的事情λ(a:*). (a,a)
。
(有一些语言可以使用它们,例如Scala可以。)
4
选择一种类型的系统会使用另一种类型的系统,因为整个过程需要保持一致。类型级别的lambda在类别理论中会非常奇怪...
—
tp1