Skip to content

TLKS instantiation differences between data types and data family declarations

The following works on the wip/top-level-kind-signatures branch:

type T :: Type -> Type
data family T

But if we change T to a data type:

type T :: Type -> Type
data T

Then GHC complains:

[1 of 1] Compiling Bug              ( Bug.hs, Bug.o )

Bug.hs:8:1: error:
    • Expected a type, but found something with kind ‘* -> *’
    • In the data type declaration for ‘T’
  |
8 | data T
  | ^^^^^^

This is a bit confusing, as I would have expected the treatment of data types and data family declarations to be similar here.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information