Remove varEnvElts
authorBartosz Nitka <niteria@gmail.com>
Tue, 5 Jul 2016 16:50:02 +0000 (09:50 -0700)
committerBartosz Nitka <niteria@gmail.com>
Tue, 5 Jul 2016 16:52:10 +0000 (09:52 -0700)
varEnvElts can introduce unnecessary nondeterminism
and we can finally remove it, so that no one will use
it by accident. If someone wants to use varEnvElts they
should either use DVarEnv or use nonDetEltsUFM and document
why it doesn't introduce nondeterminism.

GHC Trac: #4012

compiler/basicTypes/VarEnv.hs

index 626b5cd..92b6cc7 100644 (file)
@@ -9,7 +9,7 @@ module VarEnv (
 
         -- ** Manipulating these environments
         emptyVarEnv, unitVarEnv, mkVarEnv, mkVarEnv_Directly,
-        elemVarEnv, varEnvElts,
+        elemVarEnv,
         extendVarEnv, extendVarEnv_C, extendVarEnv_Acc, extendVarEnv_Directly,
         extendVarEnvList,
         plusVarEnv, plusVarEnv_C, plusVarEnv_CD, alterVarEnv,
@@ -437,7 +437,6 @@ plusVarEnv_C      :: (a -> a -> a) -> VarEnv a -> VarEnv a -> VarEnv a
 plusVarEnv_CD     :: (a -> a -> a) -> VarEnv a -> a -> VarEnv a -> a -> VarEnv a
 mapVarEnv         :: (a -> b) -> VarEnv a -> VarEnv b
 modifyVarEnv      :: (a -> a) -> VarEnv a -> Var -> VarEnv a
-varEnvElts        :: VarEnv a -> [a]
 
 isEmptyVarEnv     :: VarEnv a -> Bool
 lookupVarEnv      :: VarEnv a -> Var -> Maybe a
@@ -469,7 +468,6 @@ mapVarEnv        = mapUFM
 mkVarEnv         = listToUFM
 mkVarEnv_Directly= listToUFM_Directly
 emptyVarEnv      = emptyUFM
-varEnvElts       = eltsUFM
 unitVarEnv       = unitUFM
 isEmptyVarEnv    = isNullUFM
 lookupVarEnv_Directly = lookupUFM_Directly