Module mz_transform::source ·
Normalize the structure of
LetRec operators in expressions.
Normalization happens in the context of “scopes”, corresponding to
- the expression’s root and 2. each instance of a
Within each scope,
- Each expression is normalized to have all
Letnodes at the root of the expression, in order of identifier.
- Each expression assigns a contiguous block of identifiers.
The transform may remove some
Get operators, and does not
introduce any new operators.
The module also publishes the function
renumber_bindings which can
be used to renumber bindings in an expression starting from a provided
IdGen, which is used to prepare distinct expressions for inlining.
Install replace certain
Getoperators with their
Re-assign an identifier to each