ghc-6.12.1: The GHC APISource codeContentsIndex
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
varTypeTcTyVars :: 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 -> VarSetSource
Find all locally-defined free Ids or type variables in an expression
exprsFreeVars :: [CoreExpr] -> VarSetSource
Find all locally-defined free Ids or type variables in several expressions
bindFreeVars :: CoreBind -> VarSetSource
Find all locally defined free Ids in a binding group
Selective free variables of expressions
type InterestingVarFun = Var -> BoolSource
Predicate on possible free variables: returns True iff the variable is interesting
exprSomeFreeVarsSource
:: InterestingVarFunSays which Vars are interesting
-> CoreExpr
-> VarSet
Finds free variables in an expression selected by a predicate
exprsSomeFreeVars :: InterestingVarFun -> [CoreExpr] -> VarSetSource
Finds free variables in several expressions selected by a predicate
exprFreeNames :: CoreExpr -> NameSetSource
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] -> NameSetSource
Finds the free external names of several expressions: see exprFreeNames for details
Free variables of Rules, Vars and Ids
idRuleVars :: Id -> VarSetSource
idFreeVars :: Id -> VarSetSource
varTypeTyVars :: Var -> TyVarSetSource
varTypeTcTyVars :: Var -> TyVarSetSource
ruleRhsFreeVars :: CoreRule -> VarSetSource
Those variables free in the right hand side of a rule
rulesFreeVars :: [CoreRule] -> VarSetSource
Those variables free in the right hand side of several rules
ruleLhsFreeNames :: CoreRule -> NameSetSource

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 -> VarSetSource
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 VarSetSource
Every node in an expression annotated with its (non-global) free variables, both Ids and TyVars
type CoreBindWithFVs = AnnBind Id VarSetSource
Every node in a binding group annotated with its (non-global) free variables, both Ids and TyVars
freeVars :: CoreExpr -> CoreExprWithFVsSource
Annotate a CoreExpr with its (non-global) free type and value variables at every tree node
freeVarsOf :: CoreExprWithFVs -> IdSetSource
Inverse function to freeVars
Produced by Haddock version 2.6.0