\section[NameEnv]{@NameEnv@: name environments}
\begin{code}
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
module NameEnv (
- NameEnv, mkNameEnv,
+ -- * Var, Id and TyVar environments (maps)
+ NameEnv,
+
+ -- ** Manipulating these environments
+ mkNameEnv,
emptyNameEnv, unitNameEnv, nameEnvElts, nameEnvUniqueElts,
extendNameEnv_C, extendNameEnv_Acc, extendNameEnv,
extendNameEnvList, extendNameEnvList_C,
#include "HsVersions.h"
import Name
-import Unique(Unique)
-import UniqFM
+import Unique
+import LazyUniqFM
import Maybes
import Outputable
\end{code}
mkNameEnv l = A $ listToUFM l
elemNameEnv x (A y) = elemUFM x y
foldNameEnv a b (A c) = foldUFM a b c
-occEnvElts (A x) = eltsUFM x
plusNameEnv (A x) (A y) = A $ plusUFM x y
plusNameEnv_C f (A x) (A y) = A $ plusUFM_C f x y
extendNameEnv_C f (A x) y z = A $ addToUFM_C f x y z
mapNameEnv f (A x) = A $ mapUFM f x
-mkNameEnv_C comb l = A $ addListToUFM_C comb emptyUFM l
nameEnvUniqueElts (A x) = ufmToList x
extendNameEnv_Acc x y (A z) a b = A $ addToUFM_Acc x y z a b
extendNameEnvList_C x (A y) z = A $ addListToUFM_C x y z