projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2003-07-31 17:47:18 by ross]
[ghc-hetmet.git]
/
ghc
/
compiler
/
basicTypes
/
VarEnv.lhs
diff --git
a/ghc/compiler/basicTypes/VarEnv.lhs
b/ghc/compiler/basicTypes/VarEnv.lhs
index
f8783f4
..
d219fe5
100644
(file)
--- a/
ghc/compiler/basicTypes/VarEnv.lhs
+++ b/
ghc/compiler/basicTypes/VarEnv.lhs
@@
-8,7
+8,7
@@
module VarEnv (
VarEnv, IdEnv, TyVarEnv,
emptyVarEnv, unitVarEnv, mkVarEnv,
elemVarEnv, rngVarEnv,
VarEnv, IdEnv, TyVarEnv,
emptyVarEnv, unitVarEnv, mkVarEnv,
elemVarEnv, rngVarEnv,
- extendVarEnv, extendVarEnvList,
+ extendVarEnv, extendVarEnv_C, extendVarEnvList,
plusVarEnv, plusVarEnv_C,
delVarEnvList, delVarEnv,
lookupVarEnv, lookupVarEnv_NF, lookupWithDefaultVarEnv,
plusVarEnv, plusVarEnv_C,
delVarEnvList, delVarEnv,
lookupVarEnv, lookupVarEnv_NF, lookupWithDefaultVarEnv,
@@
-21,9
+21,9
@@
module VarEnv (
-- SubstEnvs
SubstEnv, TyVarSubstEnv, SubstResult(..),
-- SubstEnvs
SubstEnv, TyVarSubstEnv, SubstResult(..),
- emptySubstEnv,
+ emptySubstEnv, substEnvEnv, elemSubstEnv,
mkSubstEnv, lookupSubstEnv, extendSubstEnv, extendSubstEnvList,
mkSubstEnv, lookupSubstEnv, extendSubstEnv, extendSubstEnvList,
- delSubstEnv, noTypeSubst, isEmptySubstEnv
+ delSubstEnv, delSubstEnvList, noTypeSubst, isEmptySubstEnv
) where
#include "HsVersions.h"
) where
#include "HsVersions.h"
@@
-50,6
+50,8
@@
When tidying up print names, we keep a mapping of in-scope occ-names
\begin{code}
type TidyEnv = (TidyOccEnv, VarEnv Var)
\begin{code}
type TidyEnv = (TidyOccEnv, VarEnv Var)
+
+emptyTidyEnv :: TidyEnv
emptyTidyEnv = (emptyTidyOccEnv, emptyVarEnv)
\end{code}
emptyTidyEnv = (emptyTidyOccEnv, emptyVarEnv)
\end{code}
@@
-72,6
+74,9
@@
data SubstEnv = SE (VarEnv SubstResult)
noTypeSubst :: SubstEnv -> Bool
noTypeSubst (SE _ nt) = nt
noTypeSubst :: SubstEnv -> Bool
noTypeSubst (SE _ nt) = nt
+substEnvEnv :: SubstEnv -> VarEnv SubstResult
+substEnvEnv (SE env _) = env
+
type TyVarSubstEnv = SubstEnv -- of the form (DoneTy ty) *only*
data SubstResult
type TyVarSubstEnv = SubstEnv -- of the form (DoneTy ty) *only*
data SubstResult
@@
-90,6
+95,9
@@
isEmptySubstEnv (SE s _) = isEmptyVarEnv s
lookupSubstEnv :: SubstEnv -> Var -> Maybe SubstResult
lookupSubstEnv (SE s _) v = lookupVarEnv s v
lookupSubstEnv :: SubstEnv -> Var -> Maybe SubstResult
lookupSubstEnv (SE s _) v = lookupVarEnv s v
+elemSubstEnv :: Var -> SubstEnv -> Bool
+elemSubstEnv v (SE s _) = elemVarEnv v s
+
extendSubstEnv :: SubstEnv -> Var -> SubstResult -> SubstEnv
extendSubstEnv (SE s nt) v r = SE (extendVarEnv s v r) (noTys r nt)
extendSubstEnv :: SubstEnv -> Var -> SubstResult -> SubstEnv
extendSubstEnv (SE s nt) v r = SE (extendVarEnv s v r) (noTys r nt)
@@
-102,6
+110,9
@@
extendSubstEnvList (SE env nt) (b:bs) (r:rs) = extendSubstEnvList (SE (extendVar
delSubstEnv :: SubstEnv -> Var -> SubstEnv
delSubstEnv (SE s nt) v = SE (delVarEnv s v) nt
delSubstEnv :: SubstEnv -> Var -> SubstEnv
delSubstEnv (SE s nt) v = SE (delVarEnv s v) nt
+
+delSubstEnvList :: SubstEnv -> [Var] -> SubstEnv
+delSubstEnvList (SE s nt) vs = SE (delVarEnvList s vs) nt
\end{code}
\end{code}
@@
-121,6
+132,7
@@
mkVarEnv :: [(Var, a)] -> VarEnv a
zipVarEnv :: [Var] -> [a] -> VarEnv a
unitVarEnv :: Var -> a -> VarEnv a
extendVarEnv :: VarEnv a -> Var -> a -> VarEnv a
zipVarEnv :: [Var] -> [a] -> VarEnv a
unitVarEnv :: Var -> a -> VarEnv a
extendVarEnv :: VarEnv a -> Var -> a -> VarEnv a
+extendVarEnv_C :: (a->a->a) -> VarEnv a -> Var -> a -> VarEnv a
plusVarEnv :: VarEnv a -> VarEnv a -> VarEnv a
extendVarEnvList :: VarEnv a -> [(Var, a)] -> VarEnv a
plusVarEnv :: VarEnv a -> VarEnv a -> VarEnv a
extendVarEnvList :: VarEnv a -> [(Var, a)] -> VarEnv a
@@
-142,6
+154,7
@@
foldVarEnv :: (a -> b -> b) -> b -> VarEnv a -> b
\begin{code}
elemVarEnv = elemUFM
extendVarEnv = addToUFM
\begin{code}
elemVarEnv = elemUFM
extendVarEnv = addToUFM
+extendVarEnv_C = addToUFM_C
extendVarEnvList = addListToUFM
plusVarEnv_C = plusUFM_C
delVarEnvList = delListFromUFM
extendVarEnvList = addListToUFM
plusVarEnv_C = plusUFM_C
delVarEnvList = delListFromUFM