Fix subtle bug in TcTyClsDecls.mkGADTVars
This bug was revealed by Trac #14162. In a GADT-style data-family
instance we ended up a data constructor whose type mentioned
an out-of-scope variable. (This variable was in the kind of
a variable in the kind of a variable.)
Only Lint complained about this (actually only when the
data constructor was injected into the bindings by CorePrep).
So it doesn't matter much -- but it's a solid bug and might
bite us some day.
It took me quite a while to unravel because the test case was itself
quite tricky. But the fix is easy; just add a missing binding to the
substitution we are building up. It's in the regrettably-subtle
mkGADTVars function.