无法创建具有单个元素的类型级列表
Unable to create a type-level list with a single element
我对以下行为感到困惑。出现这种情况有明显的原因吗?
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]
还要注意 [
之后的 space,这是为了消除 type-level 字符文字的歧义。
我对以下行为感到困惑。出现这种情况有明显的原因吗?
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]
还要注意 [
之后的 space,这是为了消除 type-level 字符文字的歧义。