Document determinism in pprintClosureCommand
authorBartosz Nitka <niteria@gmail.com>
Tue, 7 Jun 2016 14:33:45 +0000 (07:33 -0700)
committerBartosz Nitka <niteria@gmail.com>
Tue, 7 Jun 2016 14:35:02 +0000 (07:35 -0700)
Like described in the comment, it's OK here.

GHC Trac: #4012

compiler/ghci/Debugger.hs

index acc900f..64ac154 100644 (file)
@@ -26,6 +26,7 @@ import IfaceEnv( newInteractiveBinder )
 import Name
 import Var hiding ( varName )
 import VarSet
+import UniqFM
 import Type
 import Kind
 import GHC
@@ -99,7 +100,9 @@ pprintClosureCommand bindThings force str = do
          my_tvs       = termTyCoVars t
          tvs          = env_tvs `minusVarSet` my_tvs
          tyvarOccName = nameOccName . tyVarName
-         tidyEnv      = (initTidyOccEnv (map tyvarOccName (varSetElems tvs))
+         tidyEnv      = (initTidyOccEnv (map tyvarOccName (nonDetEltsUFM tvs))
+           -- It's OK to use nonDetEltsUFM here because initTidyOccEnv
+           -- forgets the ordering immediately by creating an env
                         , env_tvs `intersectVarSet` my_tvs)
      return$ mapTermType (snd . tidyOpenType tidyEnv) t