jon.recoil.org

Module Flambda2_term_basics.Coercion

include module type of struct include Flambda2_identifiers.Int_ids.Coercion end
type t = private Flambda2_identifiers.Int_ids.Coercion.t =
  1. | Id
  2. | Change_depth of {
    1. from : rec_info_expr;
    2. to_ : rec_info_expr;
    }
val change_depth : from:rec_info_expr -> to_:rec_info_expr -> t
val id : t
val is_id : t -> bool
val inverse : t -> t
val compose : t -> then_:t -> t option
val equal : t -> t -> bool
val hash : t -> int
val map_depth_variables : t -> f:(variable -> variable) -> t
include Flambda2_nominal.Contains_names.S with type t := t

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

val apply_renaming : t -> Flambda2_nominal.Renaming.t -> t

Apply a renaming throughout a term.

include Flambda2_nominal.Contains_ids.S with type t := t
val ids_for_export : t -> Flambda2_nominal.Ids_for_export.t

Gather all table identifiers to export them.

val print : Format.formatter -> t -> unit
val free_names_in_types : t -> Flambda2_nominal.Name_occurrences.t
val compose_exn : t -> then_:t -> t