From 04d0ebc95aefb1e619be3078112b4d5c62a3a79f Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Thu, 5 Jun 2008 16:54:34 +0000 Subject: [PATCH] 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 --- compiler/typecheck/Inst.lhs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) 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 -- 1.7.10.4