我对以下行为感到摸不着头脑。出现这种情况有明显的原因吗?
Prelude> :set -XDataKinds
Prelude> :k 'True
'True :: Bool
Prelude> :k ['True, 'False]
['True, 'False] :: [Bool]
Prelude> :k ['True]
<interactive>:1:2: error:
• Expected a type, but ‘ 'True’ has kind ‘Bool’
• In the type ‘[ 'True]’
PS:如果这是 GHC 错误并且后来修复了,我使用的是 GHC 8.4.3。
最佳答案
您必须通过反引号消除列表类型与类型级别列表类型的歧义:
> :k '[ 'True]
另请注意 [
后面的空格,这是消除类型级字 rune 字歧义所必需的。
关于haskell - 无法使用单个元素创建类型级列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852668/