Module Flambda2_reaper.Field
type view = private | Block of int * Flambda2_kinds.Flambda_kind.t| Value_slot of Flambda2_identifiers.Value_slot.t| Function_slot of Flambda2_identifiers.Function_slot.t| Call_witness of closure_entry_point| Is_int| Get_tag| Return_of_call of return_kind| Code_id_of_call_witness
include Flambda2_datalog.Datalog.Column.S with type t := t
val print : Format.formatter -> t -> unitmodule Set : Flambda2_algorithms.Container_types.Set with type elt = tval datalog_column_id : ('a Map.t, t, 'a) Flambda2_datalog.Datalog.Column.idConstructing fields
Real fields
These are fields that "exist at runtime" in the sense that they can be accessed through primitives.
val block : int -> Flambda2_kinds.Flambda_kind.t -> tval value_slot : Flambda2_identifiers.Value_slot.t -> tval function_slot : Flambda2_identifiers.Function_slot.t -> tval is_int : tval get_tag : tVirtual fields
These fields cannot be accessed through primitives and are used internally by the reaper to model function calls.
val known_arity_call_witness : tval unknown_arity_call_witness : tval call_witness : closure_entry_point -> tval normal_return_of_call : int -> tval exn_return_of_call : tval code_id_of_call_witness : tInspecting fields
val kind : t -> Flambda2_kinds.Flambda_kind.tval is_virtual_field : t -> boolis_virtual_field f returns true if f is a virtual field.
val is_real_field : t -> boolis_real_field f returns true if f is a real field, i.e. not a virtual field.
val is_value_slot : t -> boolval is_function_slot : t -> boolval must_be_function_slot : t -> Flambda2_identifiers.Function_slot.tval is_local : t -> boolval print_for_variable_name : Format.formatter -> t -> unit