|
|
|
|
|
Description |
A module concerned with finding the free variables of an expression.
|
|
Synopsis |
|
|
|
|
Free variables of expressions and binding groups
|
|
exprFreeVars :: CoreExpr -> VarSet |
Find all locally-defined free Ids or type variables in an expression
|
|
exprsFreeVars :: [CoreExpr] -> VarSet |
Find all locally-defined free Ids or type variables in several expressions
|
|
bindFreeVars :: CoreBind -> VarSet |
Find all locally defined free Ids in a binding group
|
|
Selective free variables of expressions
|
|
type InterestingVarFun = Var -> Bool |
Predicate on possible free variables: returns True iff the variable is interesting
|
|
exprSomeFreeVars |
|
|
exprsSomeFreeVars :: InterestingVarFun -> [CoreExpr] -> VarSet |
Finds free variables in several expressions selected by a predicate
|
|
exprFreeNames :: CoreExpr -> NameSet |
Finds the free external names of an expression, notably
including the names of type constructors (which of course do not show
up in exprFreeVars).
|
|
exprsFreeNames :: [CoreExpr] -> NameSet |
Finds the free external names of several expressions: see exprFreeNames for details
|
|
Free variables of Rules, Vars and Ids
|
|
idRuleVars :: Id -> VarSet |
|
idFreeVars :: Id -> VarSet |
|
varTypeTyVars :: Var -> TyVarSet |
|
ruleRhsFreeVars :: CoreRule -> VarSet |
Those variables free in the right hand side of a rule
|
|
rulesFreeVars :: [CoreRule] -> VarSet |
Those variables free in the right hand side of several rules
|
|
ruleLhsFreeNames :: CoreRule -> NameSet |
Similar to exprFreeNames. However, this is used when deciding whether
a rule is an orphan. In particular, suppose that T is defined in this
module; we want to avoid declaring that a rule like:
fromIntegral T = fromIntegral_T
is an orphan. Of course it isn't, and declaring it an orphan would
make the whole module an orphan module, which is bad.
|
|
ruleLhsFreeIds :: CoreRule -> VarSet |
This finds all locally-defined free Ids on the left hand side of a rule
|
|
Core syntax tree annotation with free variables
|
|
type CoreExprWithFVs = AnnExpr Id VarSet |
Every node in an expression annotated with its
(non-global) free variables, both Ids and TyVars
|
|
type CoreBindWithFVs = AnnBind Id VarSet |
Every node in a binding group annotated with its
(non-global) free variables, both Ids and TyVars
|
|
freeVars :: CoreExpr -> CoreExprWithFVs |
Annotate a CoreExpr with its (non-global) free type and value variables at every tree node
|
|
freeVarsOf :: CoreExprWithFVs -> IdSet |
Inverse function to freeVars
|
|
Produced by Haddock version 2.4.2 |