jon.recoil.org

Module Flambda.Function_params_and_body

A name abstraction that comprises a function's parameters (together with any relations between them), the code of the function, and the my_* variables giving access to the closure, current region, etc. It also includes the return and exception continuations.

These values are bound using Define_symbol constructs (see Flambda_static).

From the body of the function, accesses to variables within the closure need to go via a Project_value_slot (from my_closure); accesses to any other simultaneously-defined functions need to go likewise via a Project_function_slot.

Create an abstraction that binds the given parameters, with associated relations thereon, over the given body.

Choose a member of the alpha-equivalence class to enable examination of the parameters, relations thereon and the body over which they are scoped.

Choose members of the alpha-equivalence classes of two definitions using the same names for the return continuation, the exception continuation, the closure, and all parameters.

val is_my_closure_used : Flambda2_terms.Flambda.Function_params_and_body.t -> bool