VarEnv

# Var, Id and TyVar environments (maps)

type VarEnv elt
type IdEnv elt
type TyVarEnv elt

## Manipulating these environments

emptyVarEnv
unitVarEnv
mkVarEnv
elemVarEnv
varEnvElts
varEnvKeys
extendVarEnv
extendVarEnv_C
extendVarEnvList
plusVarEnv
plusVarEnv_C
delVarEnvList
delVarEnv
lookupVarEnv
lookupVarEnv_NF
lookupWithDefaultVarEnv
mapVarEnv
zipVarEnv
modifyVarEnv
modifyVarEnv_Directly
isEmptyVarEnv
foldVarEnv
elemVarEnvByKey
lookupVarEnv_Directly
filterVarEnv_Directly

# The InScopeSet type

data InScopeSet

## Operations on InScopeSets

emptyInScopeSet
mkInScopeSet
delInScopeSet
extendInScopeSet
extendInScopeSetList
extendInScopeSetSet
modifyInScopeSet
getInScopeVars
lookupInScope
elemInScopeSet
uniqAway

# The RnEnv2 type

data RnEnv2

## Operations on RnEnv2s

mkRnEnv2
rnBndr2
rnBndrs2
rnOccL
rnOccR
inRnEnvL
inRnEnvR
rnBndrL
rnBndrR
nukeRnEnvL
nukeRnEnvR
extendRnInScopeList
rnInScope
rnInScopeSet
lookupRnInScope

# TidyEnv and its operation

type TidyEnv
emptyTidyEnv