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
import FunDeps
import TcMType
import TcType
import FunDeps
import TcMType
import TcType
import Type
import TypeRep
import Class
import Type
import TypeRep
import Class
import qualified Var
import VarEnv
import VarSet
import qualified Var
import VarEnv
import VarSet
import PrelNames
import BasicTypes
import SrcLoc
import PrelNames
import BasicTypes
import SrcLoc
in
mkForAllTys tvs $
mkPhiTy (map dictPred givens) $
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
dictPred :: Inst -> TcPredType
dictPred (Dict {tci_pred = pred}) = pred