[project @ 1999-03-17 08:26:30 by simonpj]
authorsimonpj <unknown>
Wed, 17 Mar 1999 08:26:30 +0000 (08:26 +0000)
committersimonpj <unknown>
Wed, 17 Mar 1999 08:26:30 +0000 (08:26 +0000)
commit41d098e37b12157f7dca5e373e245b27d01baf3a
treecf69cddd283e28215e680eb4917da098fc775fd0
parente1a833412aa72cdabf4bd04dcde52a0aca0e1274
[project @ 1999-03-17 08:26:30 by simonpj]
Complete the hack that lets us give 'error' the type

error :: forall a:?. String -> a

The kind '?' (also known as 'Type AnyBox') means that
error can be applied to unboxed types too.  unsafeCoerce is
similar.  But the 'real' type of error is:

error :: forall bv. forall a:Type bv. String -> a

That is, it's really polymorphic in the boxity of a; that's
different to saying that the type bound to 'a' must have
kind '?'.

The fix was in TcType.inst_tyvar, where we look for the kind '?'
and generate a boxity variable instead.  Sigh.
ghc/compiler/typecheck/TcType.lhs