Merge branch 'no-pred-ty'
[ghc.git] / compiler / typecheck / TcRnDriver.lhs
index f344d0c..a19a68f 100644 (file)
@@ -729,6 +729,16 @@ checkBootTyCon tc1 tc2
           (_, rho_ty2) = splitForAllTys (idType id2)
           op_ty2 = funResultTy rho_ty2
 
           (_, rho_ty2) = splitForAllTys (idType id2)
           op_ty2 = funResultTy rho_ty2
 
+       eqAT (tc1, def_ats1) (tc2, def_ats2)
+         = checkBootTyCon tc1 tc2 &&
+           eqListBy eqATDef def_ats1 def_ats2
+
+       eqATDef (ATD tvs1 ty_pats1 ty1) (ATD tvs2 ty_pats2 ty2)
+         = eqListBy same_kind tvs1 tvs2 &&
+           eqListBy (eqTypeX env) ty_pats1 ty_pats2 &&
+           eqTypeX env ty1 ty2
+         where env = rnBndrs2 env0 tvs1 tvs2
+
        eqFD (as1,bs1) (as2,bs2) = 
          eqListBy (eqTypeX env) (mkTyVarTys as1) (mkTyVarTys as2) &&
          eqListBy (eqTypeX env) (mkTyVarTys bs1) (mkTyVarTys bs2)
        eqFD (as1,bs1) (as2,bs2) = 
          eqListBy (eqTypeX env) (mkTyVarTys as1) (mkTyVarTys as2) &&
          eqListBy (eqTypeX env) (mkTyVarTys bs1) (mkTyVarTys bs2)
@@ -742,7 +752,7 @@ checkBootTyCon tc1 tc2
         ||   -- Above tests for an "abstract" class
         eqListBy (eqPredX env) sc_theta1 sc_theta2 &&
         eqListBy eqSig op_stuff1 op_stuff2 &&
         ||   -- Above tests for an "abstract" class
         eqListBy (eqPredX env) sc_theta1 sc_theta2 &&
         eqListBy eqSig op_stuff1 op_stuff2 &&
-        eqListBy checkBootTyCon ats1 ats2)
+        eqListBy eqAT ats1 ats2) 
 
   | isSynTyCon tc1 && isSynTyCon tc2
   = ASSERT(tc1 == tc2)
 
   | isSynTyCon tc1 && isSynTyCon tc2
   = ASSERT(tc1 == tc2)