[commit: ghc] tc-untouchables: Use System Names for evidence variables (2b523dc)
Simon Peyton Jones <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.cvs.ghc |
|---|---|
| Message-ID | <[email protected]> |
Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : tc-untouchables http://hackage.haskell.org/trac/ghc/changeset/2b523dc3c589f64d062dd4ed79a6bd24d2c37460 >--------------------------------------------------------------- commit 2b523dc3c589f64d062dd4ed79a6bd24d2c37460 Author: Simon Peyton Jones <[email protected]> Date: Mon Oct 1 10:36:13 2012 +0100 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. >--------------------------------------------------------------- compiler/typecheck/TcMType.lhs | 6 +++--- 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 8773078..5037ade 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 c40a9f7..68301f7 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