diff options
| author | Simon Peyton Jones <simonpj@microsoft.com> | 2012-10-01 10:36:13 +0100 |
|---|---|---|
| committer | Simon Peyton Jones <simonpj@microsoft.com> | 2012-10-01 10:36:13 +0100 |
| commit | 2b523dc3c589f64d062dd4ed79a6bd24d2c37460 (patch) | |
| tree | acef9513321da09e0f75eb82f011fae3a6dc2058 /compiler | |
| parent | bd2aef691e0d83fe8070a741ce0ab2c798e399ad (diff) | |
| download | haskell-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.lhs | 6 | ||||
| -rw-r--r-- | compiler/typecheck/TcRnMonad.lhs | 5 |
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 |
