Vital follow-up to fix of Trac #2045
authorsimonpj@microsoft.com <unknown>
Thu, 5 Jun 2008 16:54:34 +0000 (16:54 +0000)
committersimonpj@microsoft.com <unknown>
Thu, 5 Jun 2008 16:54:34 +0000 (16:54 +0000)
Sorry -- my 'validate' didn't work right and I missed a trick.
This patch must accompany

 * Fix Trac #2045: use big-tuple machiney for implication constraints

compiler/typecheck/Inst.lhs

index 5089b8d..d41e36f 100644 (file)
@@ -61,6 +61,7 @@ import InstEnv
 import FunDeps
 import TcMType
 import TcType
+import DsUtils
 import Type
 import TypeRep
 import Class
@@ -76,7 +77,6 @@ import Var      ( Var, TyVar )
 import qualified Var
 import VarEnv
 import VarSet
-import TysWiredIn
 import PrelNames
 import BasicTypes
 import SrcLoc
@@ -137,10 +137,7 @@ mkImplicTy tvs givens wanteds      -- The type of an implication constraint
     in 
       mkForAllTys tvs $ 
       mkPhiTy (map dictPred givens) $
-      if isSingleton dict_wanteds then
-       instType (head dict_wanteds) 
-      else
-       mkTupleTy Boxed (length dict_wanteds) (map instType dict_wanteds)
+      mkBigCoreTupTy (map instType dict_wanteds)
 
 dictPred :: Inst -> TcPredType
 dictPred (Dict {tci_pred = pred}) = pred