Simon Peyton Jones pushed to branch wip/T23162-spj at Glasgow Haskell Compiler / GHC

Commits:

1 changed file:

Changes:

  • compiler/GHC/Tc/Solver/FunDeps.hs
    ... ... @@ -438,7 +438,7 @@ tryEqFunDeps :: EqCt -> SolverStage ()
    438 438
     tryEqFunDeps work_item@(EqCt { eq_lhs = lhs, eq_eq_rel = eq_rel })
    
    439 439
       | NomEq <- eq_rel
    
    440 440
       , TyFamLHS tc args <- lhs
    
    441
    -  = tryFamEqFunDeps tc args work_item
    
    441
    +  = tryFamEqFunDeps tc args work_item   -- We have F args ~ rhs
    
    442 442
       | otherwise
    
    443 443
       = nopStage ()
    
    444 444
     
    
    ... ... @@ -455,7 +455,6 @@ tryFamEqFunDeps fam_tc args work_item@(EqCt { eq_ev = ev, eq_rhs = rhs })
    455 455
                   mkTopBuiltinFamEqFDs fam_tc ops args rhs }
    
    456 456
     
    
    457 457
       | Injective inj_flags <- tyConInjectivityInfo fam_tc
    
    458
    -  , isWanted ev
    
    459 458
       = if isGiven ev
    
    460 459
         then nopStage ()  -- See (INJFAM:Given)
    
    461 460
         else do { -- Note [Do local fundeps before top-level instances]
    
    ... ... @@ -776,8 +775,8 @@ solveFunDeps work_ev fd_eqns
    776 775
                     nestFunDepsTcS     $
    
    777 776
                     do { (_, eqs) <- wrapUnifier work_ev Nominal do_fundeps
    
    778 777
                        ; solveSimpleWanteds eqs }
    
    779
    -    -- ToDo: why solveSimpleWanteds?  Answer
    
    780
    -    --     (a) don't rely on eager unifier
    
    778
    +    -- Why solveSimpleWanteds?  Answer
    
    779
    +    --     (a) We don't want to rely on the eager unifier being clever
    
    781 780
         --     (b) F Int alpha ~ Maybe Int   where  type instance F Int x = Maybe x
    
    782 781
     
    
    783 782
            ; return unif_happened }