diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-01-03 15:36:31 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-01-03 15:36:31 +0000 |
commit | 5c4265f25f04f191fafc4a7f6bfde088385da53e (patch) | |
tree | 39341639812444c9c9a0fb24d1ca68ea82e72cbe /compiler | |
parent | 4853be24dd382f8fafa97077143c67da00b90d6e (diff) | |
download | haskell-5c4265f25f04f191fafc4a7f6bfde088385da53e.tar.gz |
Add alterOccEnv
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/basicTypes/OccName.lhs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/basicTypes/OccName.lhs b/compiler/basicTypes/OccName.lhs index 75858073c9..9c3161263d 100644 --- a/compiler/basicTypes/OccName.lhs +++ b/compiler/basicTypes/OccName.lhs @@ -89,6 +89,7 @@ module OccName ( lookupOccEnv, mkOccEnv, mkOccEnv_C, extendOccEnvList, elemOccEnv, occEnvElts, foldOccEnv, plusOccEnv, plusOccEnv_C, extendOccEnv_C, extendOccEnv_Acc, filterOccEnv, delListFromOccEnv, delFromOccEnv, + alterOccEnv, -- * The 'OccSet' type OccSet, emptyOccSet, unitOccSet, mkOccSet, extendOccSet, @@ -391,6 +392,7 @@ mapOccEnv :: (a->b) -> OccEnv a -> OccEnv b delFromOccEnv :: OccEnv a -> OccName -> OccEnv a delListFromOccEnv :: OccEnv a -> [OccName] -> OccEnv a filterOccEnv :: (elt -> Bool) -> OccEnv elt -> OccEnv elt +alterOccEnv :: (Maybe elt -> Maybe elt) -> OccEnv elt -> OccName -> OccEnv elt emptyOccEnv = A emptyUFM unitOccEnv x y = A $ unitUFM x y @@ -410,6 +412,7 @@ mkOccEnv_C comb l = A $ addListToUFM_C comb emptyUFM l delFromOccEnv (A x) y = A $ delFromUFM x y delListFromOccEnv (A x) y = A $ delListFromUFM x y filterOccEnv x (A y) = A $ filterUFM x y +alterOccEnv fn (A y) k = A $ alterUFM fn y k instance Outputable a => Outputable (OccEnv a) where ppr (A x) = ppr x |