Treat the (~) type constructor a bit specially
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 26 May 2011 16:19:18 +0000 (17:19 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 26 May 2011 16:19:18 +0000 (17:19 +0100)
commit3afdf90d0f9fb18f13a6b76fe41e5fc60bbdaac3
tree70e7ece16dfdfdf62b4e84a170d357a39370c93d
parent80f5e7009434750cee746bd89f7eea5f7c7fa3fd
Treat the (~) type constructor a bit specially
when kind-checking in Core Lint.  It's unusual
becuase it is poly-kinded; for example

(~) Int a
and (~) Maybe b

are both ok.  We don't want the full generality
of kind polymorphism (yet anyway) so these changes
in effect give (~) its own private kinding rule.

It won't work right if (~) appears un-saturated,
and Lint now checks for that too.
compiler/coreSyn/CoreLint.lhs
compiler/prelude/TysPrim.lhs
compiler/types/Kind.lhs