summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2012-10-01 10:36:13 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2012-10-01 10:36:13 +0100
commit2b523dc3c589f64d062dd4ed79a6bd24d2c37460 (patch)
treeacef9513321da09e0f75eb82f011fae3a6dc2058 /compiler
parentbd2aef691e0d83fe8070a741ce0ab2c798e399ad (diff)
downloadhaskell-2b523dc3c589f64d062dd4ed79a6bd24d2c37460.tar.gz
Use System Names for evidence variables
These variables all have uniformative names like "cobox" or "d". Make them System Names tells the pretty printer to show their uniques even without -dppr-debug. That in turn makes the less-voluminous debug traces *much* more informative.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/typecheck/TcMType.lhs6
-rw-r--r--compiler/typecheck/TcRnMonad.lhs5
2 files changed, 8 insertions, 3 deletions
diff --git a/compiler/typecheck/TcMType.lhs b/compiler/typecheck/TcMType.lhs
index 877307831a..5037ade777 100644
--- a/compiler/typecheck/TcMType.lhs
+++ b/compiler/typecheck/TcMType.lhs
@@ -155,17 +155,17 @@ newWantedEvVars theta = mapM newWantedEvVar theta
newEvVar :: TcPredType -> TcM EvVar
-- Creates new *rigid* variables for predicates
-newEvVar ty = do { name <- newName (predTypeOccName ty)
+newEvVar ty = do { name <- newSysName (predTypeOccName ty)
; return (mkLocalId name ty) }
newEq :: TcType -> TcType -> TcM EvVar
newEq ty1 ty2
- = do { name <- newName (mkVarOccFS (fsLit "cobox"))
+ = do { name <- newSysName (mkVarOccFS (fsLit "cobox"))
; return (mkLocalId name (mkTcEqPred ty1 ty2)) }
newDict :: Class -> [TcType] -> TcM DictId
newDict cls tys
- = do { name <- newName (mkDictOcc (getOccName cls))
+ = do { name <- newSysName (mkDictOcc (getOccName cls))
; return (mkLocalId name (mkClassPred cls tys)) }
predTypeOccName :: PredType -> OccName
diff --git a/compiler/typecheck/TcRnMonad.lhs b/compiler/typecheck/TcRnMonad.lhs
index c40a9f725b..68301f7972 100644
--- a/compiler/typecheck/TcRnMonad.lhs
+++ b/compiler/typecheck/TcRnMonad.lhs
@@ -376,6 +376,11 @@ newName occ
; loc <- getSrcSpanM
; return (mkInternalName uniq occ loc) }
+newSysName :: OccName -> TcM Name
+newSysName occ
+ = do { uniq <- newUnique
+ ; return (mkSystemName uniq occ) }
+
newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId]
newSysLocalIds fs tys
= do { us <- newUniqueSupply