Module Flambda2_bound_identifiers.Bound_parameters
val empty : Flambda2_bound_identifiers.Bound_parameters.tval to_list :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_bound_identifiers.Bound_parameter.t listval is_empty : Flambda2_bound_identifiers.Bound_parameters.t -> boolval same_number :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_bound_identifiers.Bound_parameters.t ->
boolval equal :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_bound_identifiers.Bound_parameters.t ->
boolval arity :
Flambda2_bound_identifiers.Bound_parameters.t ->
[> ] Flambda2_kinds.Flambda_arity.tval check_no_duplicates : Flambda2_bound_identifiers.Bound_parameters.t -> unitval cardinal : Flambda2_bound_identifiers.Bound_parameters.t -> intval simples :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_identifiers.Int_ids.Simple.t listval vars :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_identifiers.Variable.t listval vars_and_uids :
Flambda2_bound_identifiers.Bound_parameters.t ->
(Flambda2_identifiers.Variable.t * Flambda2_identifiers.Flambda_debug_uid.t)
listval iter :
(Flambda2_bound_identifiers.Bound_parameter.t -> unit) ->
Flambda2_bound_identifiers.Bound_parameters.t ->
unitval exists :
(Flambda2_bound_identifiers.Bound_parameter.t -> bool) ->
Flambda2_bound_identifiers.Bound_parameters.t ->
boolinclude Flambda2_nominal.Bindable.S
with type t := Flambda2_bound_identifiers.Bound_parameters.t
include Flambda2_nominal.Contains_names.S
with type t := Flambda2_bound_identifiers.Bound_parameters.t
val free_names :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_nominal.Name_occurrences.tCompute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)
val apply_renaming :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_nominal.Renaming.t ->
Flambda2_bound_identifiers.Bound_parameters.tApply a renaming throughout a term.
include Flambda2_nominal.Contains_ids.S
with type t := Flambda2_bound_identifiers.Bound_parameters.t
val ids_for_export :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_nominal.Ids_for_export.tGather all table identifiers to export them.
val print :
Stdlib.Format.formatter ->
Flambda2_bound_identifiers.Bound_parameters.t ->
unitval rename :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_bound_identifiers.Bound_parameters.tFreshen the given name.
val is_renamed_version_of :
Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_bound_identifiers.Bound_parameters.t ->
boolEquivalence 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.
val renaming :
Flambda2_bound_identifiers.Bound_parameters.t ->
guaranteed_fresh:Flambda2_bound_identifiers.Bound_parameters.t ->
Flambda2_nominal.Renaming.trenaming 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).