Simon Peyton Jones pushed to branch wip/T26868 at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • compiler/GHC/Core.hs
    ... ... @@ -436,7 +436,7 @@ set includes:
    436 436
     
    
    437 437
     * The /deep/ free vars of the term in which we are substituting
    
    438 438
       E.g when substituting [x :-> blah] into `e`, we must ensure that if we
    
    439
    -  clone a binder in `e`, we don't accidentally choose a new binder that 
    
    439
    +  clone a binder in `e`, we don't accidentally choose a new binder that
    
    440 440
       shadows a deep free var of `e`.
    
    441 441
     
    
    442 442
     For substitution on /types/ we don't need to use deep free variables.
    

  • compiler/GHC/Core/TyCo/Rep.hs
    ... ... @@ -1983,7 +1983,7 @@ foldTyCo (TyCoFolder { tcf_view = view
    1983 1983
                                     -- As per #23764, ordering is [arg, w, res]
    
    1984 1984
     
    
    1985 1985
         go_ty (TyConApp _ tys)  = go_tys tys
    
    1986
    -    go_ty (ForAllTy (Bndr tv vis) inner)
    
    1986
    +    go_ty (ForAllTy (Bndr tv _) inner)
    
    1987 1987
           = go_ty (varType tv) `mappend` tycobinder tv (go_ty inner)
    
    1988 1988
     
    
    1989 1989
         -- See Note [Use explicit recursion in foldTyCo]