ghc-6.10.1: The GHC APIContentsIndex
CoreFVs
Contents
Free variables of expressions and binding groups
Selective free variables of expressions
Free variables of Rules, Vars and Ids
Core syntax tree annotation with free variables
Description
A module concerned with finding the free variables of an expression.
Synopsis
exprFreeVars :: CoreExpr -> VarSet
exprsFreeVars :: [CoreExpr] -> VarSet
bindFreeVars :: CoreBind -> VarSet
type InterestingVarFun = Var -> Bool
exprSomeFreeVars :: InterestingVarFun -> CoreExpr -> VarSet
exprsSomeFreeVars :: InterestingVarFun -> [CoreExpr] -> VarSet
exprFreeNames :: CoreExpr -> NameSet
exprsFreeNames :: [CoreExpr] -> NameSet
idRuleVars :: Id -> VarSet
idFreeVars :: Id -> VarSet
varTypeTyVars :: Var -> TyVarSet
ruleRhsFreeVars :: CoreRule -> VarSet
rulesFreeVars :: [CoreRule] -> VarSet
ruleLhsFreeNames :: CoreRule -> NameSet
ruleLhsFreeIds :: CoreRule -> VarSet
type CoreExprWithFVs = AnnExpr Id VarSet
type CoreBindWithFVs = AnnBind Id VarSet
freeVars :: CoreExpr -> CoreExprWithFVs
freeVarsOf :: CoreExprWithFVs -> IdSet
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
:: InterestingVarFunSays which Vars are interesting
-> CoreExpr
-> VarSet
Finds free variables in an expression selected by a predicate
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.3.0