jon.recoil.org

Module Flambda2_bound_identifiers.Bound_for_function

The identifiers (implicit and explicit function parameters, together with return and exception continuations) bound at a lambda in the term language.

type t
include Flambda2_nominal.Bindable.S with type t := Flambda2_bound_identifiers.Bound_for_function.t
include Flambda2_nominal.Contains_names.S with type t := Flambda2_bound_identifiers.Bound_for_function.t

Compute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)

Equivalence relation on renamed variables.

is_renamed_version_of x y is true if there exists a bindable z such that x and y are renamed versions of z.

Note: this function can return true in other cases (if there are some name collisions for instance), this is (at least currently) only used for a sanity check, so users should not rely too much on its expected semantics.

renaming stale ~guaranteed_fresh:fresh is to create a renaming that turns all occurrences of the name stale into fresh (in a capture-avoiding manner, but that is inherent in Renaming).