




Description 
A module concerned with finding the free variables of an expression.


Synopsis 




Free variables of expressions and binding groups



Find all locallydefined free Ids or type variables in an expression



Find all locallydefined free Ids or type variables in several expressions



Find all locally defined free Ids in a binding group


Selective free variables of expressions



Predicate on possible free variables: returns True iff the variable is interesting






Finds free variables in several expressions selected by a predicate



Finds the free external names of an expression, notably
including the names of type constructors (which of course do not show
up in exprFreeVars).



Finds the free external names of several expressions: see exprFreeNames for details


Free variables of Rules, Vars and Ids











Those variables free in the right hand side of a rule



Those variables free in the right hand side of several rules



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.



This finds all locallydefined free Ids on the left hand side of a rule


Core syntax tree annotation with free variables



Every node in an expression annotated with its
(nonglobal) free variables, both Ids and TyVars



Every node in a binding group annotated with its
(nonglobal) free variables, both Ids and TyVars



Annotate a CoreExpr with its (nonglobal) free type and value variables at every tree node



Inverse function to freeVars


Produced by Haddock version 2.6.0 