2014-12-09 0:04 GMT+01:00 Taylor Hedberg <t@tmh.cc>:
$ ghci -XDataKinds -XKindSignatures
Prelude> data K = K
Prelude> data Foo (a :: K) = Foo
Prelude> :kind Foo
Foo :: K -> *

Note that types with kinds other than * are uninhabited, so you can't write a version of Maybe with that kind (because the Just constructor would require a value that can't exist).

That was quick (and that is that I feared).

Thanks anyway.