Skip to content

Extra ' in error output concerning promoted kinds

When I try to compile the following code, a slightly erroneous error message is produced:

{-# LANGUAGE DataKinds #-}

foo :: 'False
foo = undefined

The error message is

Kind mis-match
Expected kind `ArgKind', but `False' has kind 'Bool
In the type signature for `foo': foo :: False

The problem is that the kind of 'False is reported as 'Bool. However, if you use a kind written 'Bool in a program, that program fails to compile. As I understand it, the only way to write the kind of 'False is Bool, without the initial tick.

Trac metadata
Trac field Value
Version 7.5
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler (Type checker)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information