Remove unnecessary import, plus white space
[ghc-hetmet.git] / compiler / typecheck / TcSimplify.lhs
index 197d682..5fc6a5b 100644 (file)
@@ -523,7 +523,7 @@ simplifyRule name tv_bndrs lhs_wanted rhs_wanted
 
        ; (lhs_results, lhs_binds)
               <- runTcS SimplRuleLhs untch $
-                 solveWanteds emptyInert lhs_wanted
+                 solveWanteds emptyInert zonked_lhs
 
        ; traceTc "simplifyRule" $
          vcat [ text "zonked_lhs"   <+> ppr zonked_lhs 
@@ -642,6 +642,11 @@ solve_wanteds inert wanted@(WC { wc_flat = flats, wc_impl = implics, wc_insol =
   = do { traceTcS "solveWanteds {" (ppr wanted)
 
                  -- Try the flat bit
+                 -- Discard from insols all the derived/given constraints
+                 -- because they will show up again when we try to solve
+                 -- everything else.  Solving them a second time is a bit
+                 -- of a waste, but the code is simple, and the program is
+                 -- wrong anyway!
        ; let all_flats = flats `unionBags` keepWanted insols
        ; inert1 <- solveInteractWanted inert (bagToList all_flats)