| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.Core.FVs
Description
A module concerned with finding the free variables of an expression.
Synopsis
- exprFreeVars :: CoreExpr -> VarSet
 - exprsFreeVars :: [CoreExpr] -> VarSet
 - exprFreeVarsDSet :: CoreExpr -> DVarSet
 - exprFreeVarsList :: CoreExpr -> [Var]
 - exprsFreeVarsList :: [CoreExpr] -> [Var]
 - exprFreeIds :: CoreExpr -> IdSet
 - exprsFreeIds :: [CoreExpr] -> IdSet
 - exprFreeIdsDSet :: CoreExpr -> DIdSet
 - exprsFreeIdsDSet :: [CoreExpr] -> DIdSet
 - exprFreeIdsList :: CoreExpr -> [Id]
 - exprsFreeIdsList :: [CoreExpr] -> [Id]
 - bindFreeVars :: CoreBind -> VarSet
 - type InterestingVarFun = Var -> Bool
 - exprSomeFreeVars :: InterestingVarFun -> CoreExpr -> VarSet
 - exprsSomeFreeVars :: InterestingVarFun -> [CoreExpr] -> VarSet
 - exprSomeFreeVarsList :: InterestingVarFun -> CoreExpr -> [Var]
 - exprsSomeFreeVarsList :: InterestingVarFun -> [CoreExpr] -> [Var]
 - varTypeTyCoVars :: Var -> TyCoVarSet
 - varTypeTyCoFVs :: Var -> FV
 - idUnfoldingVars :: Id -> VarSet
 - idFreeVars :: Id -> VarSet
 - dIdFreeVars :: Id -> DVarSet
 - bndrRuleAndUnfoldingVarsDSet :: Id -> DVarSet
 - bndrRuleAndUnfoldingIds :: Id -> IdSet
 - idFVs :: Id -> FV
 - idRuleVars :: Id -> VarSet
 - stableUnfoldingVars :: Unfolding -> Maybe VarSet
 - ruleFreeVars :: CoreRule -> VarSet
 - rulesFreeVars :: [CoreRule] -> VarSet
 - rulesFreeVarsDSet :: [CoreRule] -> DVarSet
 - mkRuleInfo :: [CoreRule] -> RuleInfo
 - ruleLhsFreeIds :: CoreRule -> VarSet
 - ruleLhsFreeIdsList :: CoreRule -> [Var]
 - ruleRhsFreeVars :: CoreRule -> VarSet
 - rulesRhsFreeIds :: [CoreRule] -> VarSet
 - exprFVs :: CoreExpr -> FV
 - orphNamesOfType :: Type -> NameSet
 - orphNamesOfTypes :: [Type] -> NameSet
 - orphNamesOfCo :: Coercion -> NameSet
 - orphNamesOfCoCon :: forall (br :: BranchFlag). CoAxiom br -> NameSet
 - orphNamesOfAxiomLHS :: forall (br :: BranchFlag). CoAxiom br -> NameSet
 - exprsOrphNames :: [CoreExpr] -> NameSet
 - type FVAnn = DVarSet
 - type CoreExprWithFVs = AnnExpr Id FVAnn
 - type CoreExprWithFVs' = AnnExpr' Id FVAnn
 - type CoreBindWithFVs = AnnBind Id FVAnn
 - type CoreAltWithFVs = AnnAlt Id FVAnn
 - freeVars :: CoreExpr -> CoreExprWithFVs
 - freeVarsBind :: CoreBind -> DVarSet -> (CoreBindWithFVs, DVarSet)
 - freeVarsOf :: CoreExprWithFVs -> DIdSet
 - freeVarsOfAnn :: FVAnn -> DIdSet
 
Free variables of expressions and binding groups
exprFreeVars :: CoreExpr -> VarSet Source #
Find all locally-defined free Ids or type variables in an expression returning a non-deterministic set.
exprsFreeVars :: [CoreExpr] -> VarSet Source #
Find all locally-defined free Ids or type variables in several expressions returning a non-deterministic set.
exprFreeVarsDSet :: CoreExpr -> DVarSet Source #
Find all locally-defined free Ids or type variables in an expression returning a deterministic set.
exprFreeVarsList :: CoreExpr -> [Var] Source #
Find all locally-defined free Ids or type variables in an expression returning a deterministically ordered list.
exprsFreeVarsList :: [CoreExpr] -> [Var] Source #
Find all locally-defined free Ids or type variables in several expressions returning a deterministically ordered list.
exprFreeIds :: CoreExpr -> IdSet Source #
Find all locally-defined free Ids in an expression
exprsFreeIds :: [CoreExpr] -> IdSet Source #
exprFreeIdsDSet :: CoreExpr -> DIdSet Source #
Find all locally-defined free Ids in an expression returning a deterministic set.
exprsFreeIdsDSet :: [CoreExpr] -> DIdSet Source #
Find all locally-defined free Ids in several expressions returning a deterministic set.
exprFreeIdsList :: CoreExpr -> [Id] Source #
Find all locally-defined free Ids in an expression returning a deterministically ordered list.
exprsFreeIdsList :: [CoreExpr] -> [Id] Source #
Find all locally-defined free Ids in several expressions returning a deterministically ordered list.
bindFreeVars :: CoreBind -> VarSet Source #
Find all locally defined free Ids in a binding group
Selective free variables of expressions
type InterestingVarFun = Var -> Bool Source #
Predicate on possible free variables: returns True iff the variable is
 interesting
Arguments
| :: InterestingVarFun | Says which   | 
| -> CoreExpr | |
| -> VarSet | 
Finds free variables in an expression selected by a predicate
exprsSomeFreeVars :: InterestingVarFun -> [CoreExpr] -> VarSet Source #
Finds free variables in several expressions selected by a predicate
Arguments
| :: InterestingVarFun | Says which   | 
| -> CoreExpr | |
| -> [Var] | 
Finds free variables in an expression selected by a predicate returning a deterministically ordered list.
exprsSomeFreeVarsList :: InterestingVarFun -> [CoreExpr] -> [Var] Source #
Finds free variables in several expressions selected by a predicate returning a deterministically ordered list.
Free variables of Rules, Vars and Ids
varTypeTyCoVars :: Var -> TyCoVarSet Source #
varTypeTyCoFVs :: Var -> FV Source #
idUnfoldingVars :: Id -> VarSet Source #
idFreeVars :: Id -> VarSet Source #
dIdFreeVars :: Id -> DVarSet Source #
bndrRuleAndUnfoldingIds :: Id -> IdSet Source #
idRuleVars :: Id -> VarSet Source #
ruleFreeVars :: CoreRule -> VarSet Source #
Those variables free in the both the left right hand sides of a rule returned as a non-deterministic set
rulesFreeVars :: [CoreRule] -> VarSet Source #
Those variables free in both the left right hand sides of several rules
rulesFreeVarsDSet :: [CoreRule] -> DVarSet Source #
Those variables free in the both the left right hand sides of rules returned as a deterministic set
mkRuleInfo :: [CoreRule] -> RuleInfo Source #
ruleLhsFreeIds :: CoreRule -> VarSet Source #
This finds all locally-defined free Ids on the left hand side of a rule and returns them as a non-deterministic set
ruleLhsFreeIdsList :: CoreRule -> [Var] Source #
This finds all locally-defined free Ids on the left hand side of a rule and returns them as a deterministically ordered list
ruleRhsFreeVars :: CoreRule -> VarSet Source #
Those variables free in the right hand side of a rule returned as a non-deterministic set
rulesRhsFreeIds :: [CoreRule] -> VarSet Source #
Those locally-defined free Ids in the right hand side of several rules
 returned as a non-deterministic set
exprFVs :: CoreExpr -> FV Source #
Find all locally-defined free Ids or type variables in an expression returning a composable FV computation. See Note [FV naming conventions] in GHC.Utils.FV for why export it.
Orphan names
orphNamesOfType :: Type -> NameSet Source #
orphNamesOfTypes :: [Type] -> NameSet Source #
orphNamesOfCo :: Coercion -> NameSet Source #
orphNamesOfCoCon :: forall (br :: BranchFlag). CoAxiom br -> NameSet Source #
orphNamesOfAxiomLHS :: forall (br :: BranchFlag). CoAxiom br -> NameSet Source #
orphNamesOfAxiomLHS collects the names of the concrete types and
 type constructors that make up the LHS of a type family instance,
 including the family name itself.
For instance, given `type family Foo a b`: `type instance Foo (F (G (H a))) b = ...` would yield [Foo,F,G,H]
Used (via orphNamesOfFamInst) in the implementation of ":info" in GHCi. and when determining orphan-hood for a FamInst or module
exprsOrphNames :: [CoreExpr] -> NameSet Source #
Finds the free external names of several expressions: see exprOrphNames for details
Core syntax tree annotation with free variables
type CoreExprWithFVs = AnnExpr Id FVAnn Source #
Every node in an expression annotated with its (non-global) free variables, both Ids and TyVars, and type. NB: see Note [The FVAnn invariant]
type CoreBindWithFVs = AnnBind Id FVAnn Source #
Every node in a binding group annotated with its (non-global) free variables, both Ids and TyVars, and type.
type CoreAltWithFVs = AnnAlt Id FVAnn Source #
Every node in an expression annotated with its (non-global) free variables, both Ids and TyVars, and type.
freeVars :: CoreExpr -> CoreExprWithFVs Source #
Annotate a CoreExpr with its (non-global) free type
   and value variables at every tree node.
freeVarsBind :: CoreBind -> DVarSet -> (CoreBindWithFVs, DVarSet) Source #
freeVarsOf :: CoreExprWithFVs -> DIdSet Source #
Inverse function to freeVars
freeVarsOfAnn :: FVAnn -> DIdSet Source #
Extract the vars reported in a FVAnn