Find all locally-defined free Ids or type variables in an expression returning a non-deterministic set.
Moduleghc-9.10.3GHC2021
GHC.Core.FVs
A module concerned with finding the free variables of an expression.
- 6 types
- 45 values
- Packageghc-9.10.3
- Exports51
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceFVs.hs
Free variables of expressions and binding groups
12 declarationsFind all locally-defined free Ids or type variables in several expressions returning a non-deterministic set.
Find all locally-defined free Ids or type variables in an expression returning a deterministic set.
Find all locally-defined free Ids or type variables in an expression returning a deterministically ordered list.
Find all locally-defined free Ids or type variables in several expressions returning a deterministically ordered list.
Find all locally-defined free Ids in an expression
Find all locally-defined free Ids in an expression returning a deterministic set.
Find all locally-defined free Ids in several expressions returning a deterministic set.
Find all locally-defined free Ids in an expression returning a deterministically ordered list.
Find all locally-defined free Ids in several expressions returning a deterministically ordered list.
Find all locally defined free Ids in a binding group
Selective free variables of expressions
5 declarationsPredicate on possible free variables: returns True iff the variable is
interesting
Finds free variables in an expression selected by a predicate
Finds free variables in several expressions selected by a predicate
Finds free variables in an expression selected by a predicate returning a deterministically ordered list.
Finds free variables in several expressions selected by a predicate returning a deterministically ordered list.
Free variables of Rules, Vars and Ids
19 declarationsThose variables free in the both the left right hand sides of a rule returned as a non-deterministic set
Those variables free in both the left right hand sides of several rules
Those variables free in the both the left right hand sides of rules returned as a deterministic set
This finds all locally-defined free Ids on the left hand side of a rule and returns them as a non-deterministic set
This finds all locally-defined free Ids on the left hand side of a rule and returns them as a deterministically ordered list
Those variables free in the right hand side of a rule returned as a non-deterministic set
Those locally-defined free Ids in the right hand side of several rules returned as a non-deterministic set
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
6 declarationsorphNamesOfAxiomLHS 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
Finds the free external names of several expressions: see exprOrphNames for details
Core syntax tree annotation with free variables
9 declarationsEvery node in an expression annotated with its (non-global) free variables, both Ids and TyVars, and type. NB: see Note [The FVAnn invariant]
Every node in a binding group annotated with its (non-global) free variables, both Ids and TyVars, and type.
Every node in an expression annotated with its (non-global) free variables, both Ids and TyVars, and type.
Annotate a CoreExpr with its (non-global) free type and value variables at every tree node.
Inverse function to freeVars
Extract the vars reported in a FVAnn