ScopedTypeVariables binds a non-existent variable
GHC accepts this definition:
f :: (forall a. a -> a) -> () f (x :: b -> b) = x (undefined :: b) `seq` ()
If a scoped type variable is bound always to a variable, then what variable is
b bound to? In the desugared Core, it looks like
b is bound to
Any. Note that I couldn't find any valid argument for
x here other than
I think this definition should be rejected.
In terms of implementation, the
zonkTcTypeToType function should never encounter a unfilled-in
SigTv. If it does, error. I don't like putting the error there, but I'm not sure I know another place to do it.