X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FbasicTypes%2FVarEnv.lhs;h=393a3849dae3a3514776679e53fe1ed41212d0c9;hb=9aba9a7f16e3f4acd79c75aacdbaad5af92f8752;hp=03eb4e1e8ab5ca5408a1145ccdb84afa35395ff6;hpb=17fff9311d82ddb38d82b1d08bbfcdff6c3892be;p=ghc-hetmet.git diff --git a/ghc/compiler/basicTypes/VarEnv.lhs b/ghc/compiler/basicTypes/VarEnv.lhs index 03eb4e1..393a384 100644 --- 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, - extendVarEnv, extendVarEnvList, + extendVarEnv, extendVarEnv_C, extendVarEnvList, plusVarEnv, plusVarEnv_C, delVarEnvList, delVarEnv, lookupVarEnv, lookupVarEnv_NF, lookupWithDefaultVarEnv, @@ -21,7 +21,7 @@ module VarEnv ( -- SubstEnvs SubstEnv, TyVarSubstEnv, SubstResult(..), - emptySubstEnv, substEnvEnv, + emptySubstEnv, substEnvEnv, elemSubstEnv, mkSubstEnv, lookupSubstEnv, extendSubstEnv, extendSubstEnvList, delSubstEnv, delSubstEnvList, noTypeSubst, isEmptySubstEnv ) where @@ -93,6 +93,9 @@ isEmptySubstEnv (SE s _) = isEmptyVarEnv s 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) @@ -127,6 +130,7 @@ mkVarEnv :: [(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 @@ -148,6 +152,7 @@ foldVarEnv :: (a -> b -> b) -> b -> VarEnv a -> b \begin{code} elemVarEnv = elemUFM extendVarEnv = addToUFM +extendVarEnv_C = addToUFM_C extendVarEnvList = addListToUFM plusVarEnv_C = plusUFM_C delVarEnvList = delListFromUFM