Невозможно создать список уровня типа с одним элементом - PullRequest
2 голосов
/ 02 июля 2019

Я чешу голову со следующим поведением. Есть ли очевидная причина, почему это так?

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 8.4.3, если это ошибка GHC и была исправлена ​​позже.

1 Ответ

4 голосов
/ 02 июля 2019

Вы должны устранить неоднозначность типов списка из типов списка уровня типа с помощью обратной черты:

> :k '[ 'True]

Также обратите внимание на пробел после [, который необходим для устранения неоднозначности литералов уровня типа.

...