无法使用单个元素创建类型级别列表

时间:2019-07-02 12:36:33

标签: haskell data-kinds

我正在抓紧以下行为。是这种情况有明显的原因吗?

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,并在以后修复。

1 个答案:

答案 0 :(得分:4)

您必须通过反引号将列表类型与类型级别列表类型区分开来:

> :k '[ 'True]

还要注意[后的空格,这是消除类型级别字符文字所必需的。