projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use a proper datatype, rather than pairs, for flags
[ghc-hetmet.git]
/
compiler
/
typecheck
/
Inst.lhs
diff --git
a/compiler/typecheck/Inst.lhs
b/compiler/typecheck/Inst.lhs
index
45e8d8d
..
d41e36f
100644
(file)
--- a/
compiler/typecheck/Inst.lhs
+++ b/
compiler/typecheck/Inst.lhs
@@
-61,6
+61,7
@@
import InstEnv
import FunDeps
import TcMType
import TcType
import FunDeps
import TcMType
import TcType
+import DsUtils
import Type
import TypeRep
import Class
import Type
import TypeRep
import Class
@@
-69,16
+70,13
@@
import Module
import Coercion
import HscTypes
import CoreFVs
import Coercion
import HscTypes
import CoreFVs
-import DataCon
import Id
import Name
import NameSet
import Id
import Name
import NameSet
-import Literal
import Var ( Var, TyVar )
import qualified Var
import VarEnv
import VarSet
import Var ( Var, TyVar )
import qualified Var
import VarEnv
import VarSet
-import TysWiredIn
import PrelNames
import BasicTypes
import SrcLoc
import PrelNames
import BasicTypes
import SrcLoc
@@
-89,8
+87,6
@@
import Util
import Unique
import Outputable
import Data.List
import Unique
import Outputable
import Data.List
-import TypeRep
-import Class
import Control.Monad
\end{code}
import Control.Monad
\end{code}
@@
-141,10
+137,7
@@
mkImplicTy tvs givens wanteds -- The type of an implication constraint
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