From: simonpj@microsoft.com Date: Thu, 5 Jun 2008 16:54:34 +0000 (+0000) Subject: Vital follow-up to fix of Trac #2045 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=04d0ebc95aefb1e619be3078112b4d5c62a3a79f Vital follow-up to fix of Trac #2045 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 --- diff --git a/compiler/typecheck/Inst.lhs b/compiler/typecheck/Inst.lhs index 5089b8d..d41e36f 100644 --- a/compiler/typecheck/Inst.lhs +++ b/compiler/typecheck/Inst.lhs @@ -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