jon.recoil.org

Module Flambda2_terms.Function_declarations

type t

The part of a Set_of_closures that describes the functions therein (as opposed to the captured variables).

include Expr_std.S with type t := t
val print : Format.formatter -> t -> unit
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.

type code_id_in_function_declaration =
  1. | Deleted of {
    1. function_slot_size : int;
    2. dbg : Debuginfo.t;
    }
  2. | Code_id of {
    1. code_id : Flambda2_identifiers.Code_id.t;
    2. only_full_applications : bool;
    }
val empty : t
val is_empty : t -> bool

Create a set of function declarations in the given order.

The function(s) defined by the set of function declarations, indexed by function slot.

The function(s) defined by the set of function declarations, in the order originally given.

find f t raises Not_found if f is not in t.

val binds_function_slot : t -> Flambda2_identifiers.Function_slot.t -> bool
val compare : t -> t -> int