Skip to content
  • Simon Peyton Jones's avatar
    Fix subtle bug in TcTyClsDecls.mkGADTVars · 3a27e34f
    Simon Peyton Jones authored
    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.
    3a27e34f