ghc-7.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

NameEnv

Contents

- Var, Id and TyVar environments (maps)
  - Manipulating these environments
  - Dependency analysis

Synopsis

- type NameEnv a = UniqFM a
- mkNameEnv :: [(Name, a)] -> NameEnv a
- emptyNameEnv :: NameEnv a
- unitNameEnv :: Name -> a -> NameEnv a
- nameEnvElts :: NameEnv a -> [a]
- nameEnvUniqueElts :: NameEnv a -> [(Unique, a)]
- extendNameEnv_C :: (a -> a -> a) -> NameEnv a -> Name -> a -> NameEnv a
- extendNameEnv_Acc :: (a -> b -> b) -> (a -> b) -> NameEnv b -> Name -> a -> NameEnv b
- extendNameEnv :: NameEnv a -> Name -> a -> NameEnv a
- extendNameEnvList :: NameEnv a -> [(Name, a)] -> NameEnv a
- extendNameEnvList_C :: (a -> a -> a) -> NameEnv a -> [(Name, a)] -> NameEnv a
- foldNameEnv :: (a -> b -> b) -> b -> NameEnv a -> b
- filterNameEnv :: (elt -> Bool) -> NameEnv elt -> NameEnv elt
- anyNameEnv :: (elt -> Bool) -> NameEnv elt -> Bool
- plusNameEnv :: NameEnv a -> NameEnv a -> NameEnv a
- plusNameEnv_C :: (a -> a -> a) -> NameEnv a -> NameEnv a -> NameEnv a
- alterNameEnv :: (Maybe a -> Maybe a) -> NameEnv a -> Name -> NameEnv a
- lookupNameEnv :: NameEnv a -> Name -> Maybe a
- lookupNameEnv_NF :: NameEnv a -> Name -> a
- delFromNameEnv :: NameEnv a -> Name -> NameEnv a
- delListFromNameEnv :: NameEnv a -> [Name] -> NameEnv a
- elemNameEnv :: Name -> NameEnv a -> Bool
- mapNameEnv :: (elt1 -> elt2) -> NameEnv elt1 -> NameEnv elt2
- disjointNameEnv :: NameEnv a -> NameEnv a -> Bool
- depAnal :: (node -> [Name]) -> (node -> [Name]) -> [node] -> [SCC node]

# Var, Id and TyVar environments (maps)

type NameEnv a = UniqFM a Source

## Manipulating these environments

mkNameEnv :: [(Name, a)] -> NameEnv a Source

emptyNameEnv :: NameEnv a Source

unitNameEnv :: Name -> a -> NameEnv a Source

nameEnvElts :: NameEnv a -> [a] Source

nameEnvUniqueElts :: NameEnv a -> [(Unique, a)] Source

extendNameEnv_C :: (a -> a -> a) -> NameEnv a -> Name -> a -> NameEnv a Source

extendNameEnv_Acc :: (a -> b -> b) -> (a -> b) -> NameEnv b -> Name -> a -> NameEnv b Source

extendNameEnv :: NameEnv a -> Name -> a -> NameEnv a Source

extendNameEnvList :: NameEnv a -> [(Name, a)] -> NameEnv a Source

extendNameEnvList_C :: (a -> a -> a) -> NameEnv a -> [(Name, a)] -> NameEnv a Source

foldNameEnv :: (a -> b -> b) -> b -> NameEnv a -> b Source

filterNameEnv :: (elt -> Bool) -> NameEnv elt -> NameEnv elt Source

anyNameEnv :: (elt -> Bool) -> NameEnv elt -> Bool Source

plusNameEnv :: NameEnv a -> NameEnv a -> NameEnv a Source

plusNameEnv_C :: (a -> a -> a) -> NameEnv a -> NameEnv a -> NameEnv a Source

alterNameEnv :: (Maybe a -> Maybe a) -> NameEnv a -> Name -> NameEnv a Source

lookupNameEnv :: NameEnv a -> Name -> Maybe a Source

lookupNameEnv_NF :: NameEnv a -> Name -> a Source

delFromNameEnv :: NameEnv a -> Name -> NameEnv a Source

delListFromNameEnv :: NameEnv a -> [Name] -> NameEnv a Source

elemNameEnv :: Name -> NameEnv a -> Bool Source

mapNameEnv :: (elt1 -> elt2) -> NameEnv elt1 -> NameEnv elt2 Source

disjointNameEnv :: NameEnv a -> NameEnv a -> Bool Source

## Dependency analysis

depAnal :: (node -> [Name]) -> (node -> [Name]) -> [node] -> [SCC node] Source