为什么GHCi不能解决那种[[]]?

Squ*_*dly 6 polymorphism haskell types ghc

为什么Haskell无法解决[[]](列表列表)的问题?
为什么不是简单的* - >*,因为我可以给它一个类似Int的类型,并得到[[Int]],这是一种类型*.

Mic*_*zyk 8

我认为它与之相同Maybe Maybe,虽然在后一种情况下原因可能更清楚:"外部"类型构造函数希望传递一种类型*,但是看到类型的类型构造函数* -> *("内部" Maybe/ [])并且抱怨.如果我是正确的,这:kind对于GHCi 的功能来说并不是真正的问题,而是找到正确的语法来表达高级类型构造函数的组成.

作为一种解决方法,类似于

:kind forall a. [[a]]
:kind forall a. Maybe (Maybe a)
Run Code Online (Sandbox Code Playgroud)

可以使用(ExistentialQuantification启用适当的语言扩展 - 我认为 - 启用forall语法).