X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcSimplify.lhs;h=e25f51015f2a41c99992cc2a0ea5741cd6d8f1a8;hp=197d6820b091ebe933aa9446385addf73d700ecd;hb=5882c5ff503c5b3b425708621cbc3371cc36e5de;hpb=024aa13a0a6bfd2d68f4c551824357b87e732f5b diff --git a/compiler/typecheck/TcSimplify.lhs b/compiler/typecheck/TcSimplify.lhs index 197d682..e25f510 100644 --- a/compiler/typecheck/TcSimplify.lhs +++ b/compiler/typecheck/TcSimplify.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)