From: Simon Peyton Jones Date: Wed, 4 May 2011 12:26:30 +0000 (+0100) Subject: Merge commit X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=5096055e9aa46a7cc8b5a1292f7094fe588ec4d1 Merge commit --- 5096055e9aa46a7cc8b5a1292f7094fe588ec4d1 diff --cc compiler/types/OptCoercion.lhs index 559ea65,6d0f2b1..a93df03 --- a/compiler/types/OptCoercion.lhs +++ b/compiler/types/OptCoercion.lhs @@@ -100,13 -92,11 +92,13 @@@ opt_co env sym c opt_co' env _ (Refl ty) = Refl (substTy env ty) opt_co' env sym (SymCo co) = opt_co env (not sym) co - opt_co' env sym (TyConAppCo tc cos) = mkTyConAppCo tc (map (opt_co env sym) cos) + opt_co' env sym (PredCo cos) = mkPredCo (fmap (opt_co env sym) cos) opt_co' env sym (AppCo co1 co2) = mkAppCo (opt_co env sym co1) (opt_co env sym co2) opt_co' env sym (ForAllCo tv co) = case substTyVarBndr env tv of - (env', tv') -> ForAllCo tv' (opt_co env' sym co) + (env', tv') -> mkForAllCo tv' (opt_co env' sym co) + -- Use the "mk" functions to check for nested Refls + opt_co' env sym (CoVarCo cv) | Just co <- lookupCoVar env cv = opt_co (zapCvSubstEnv env) sym co