Beautify a bit
[ghc-hetmet.git] / compiler / typecheck / TcRnDriver.lhs
index f20de55..144d0d0 100644 (file)
@@ -173,6 +173,7 @@ tcRnModule hsc_env hsc_src save_rn_syntax
        loadOrphanModules (imp_orphs  imports) False ;
        loadOrphanModules (imp_finsts imports) True  ;
 
+       traceRn (text "rn1: checking family instance consistency") ;
        let { directlyImpMods =   map (\(mod, _, _) -> mod) 
                                . moduleEnvElts 
                                . imp_mods 
@@ -1035,12 +1036,11 @@ tcRnExpr hsc_env ictxt rdr_expr
        -- Now typecheck the expression; 
        -- it might have a rank-2 type (e.g. :t runST)
     ((tc_expr, res_ty), lie)      <- getLIE (tcInferRho rn_expr) ;
-    ((qtvs, _, dict_ids), lie_top) <- getLIE (tcSimplifyInfer smpl_doc (tyVarsOfType res_ty) lie)  ;
+    ((qtvs, dict_insts, _), lie_top) <- getLIE (tcSimplifyInfer smpl_doc (tyVarsOfType res_ty) lie)  ;
     tcSimplifyInteractive lie_top ;
-    qtvs' <- mappM zonkQuantifiedTyVar qtvs ;
 
-    let { all_expr_ty = mkForAllTys qtvs' $
-                       mkFunTys (map idType dict_ids)  $
+    let { all_expr_ty = mkForAllTys qtvs $
+                       mkFunTys (map (idType . instToId) dict_insts)   $
                        res_ty } ;
     zonkTcType all_expr_ty
     }