jon.recoil.org

Module Flambda2_reaper.Traverse_acc

type continuation_info = {
  1. is_exn_handler : bool;
  2. params : Flambda2_identifiers.Variable.t list;
  3. arity : Flambda2_kinds.Flambda_kind.With_subkind.t list;
}
module Env : sig ... end
type code_dep = {
  1. arity : [ `Complex ] Flambda2_kinds.Flambda_arity.t;
  2. params : Flambda2_identifiers.Variable.t list;
  3. my_closure : Flambda2_identifiers.Variable.t;
  4. return : Flambda2_identifiers.Variable.t list;
  5. exn : Flambda2_identifiers.Variable.t;
  6. is_tupled : bool;
  7. known_arity_call_witness : Flambda2_identifiers.Code_id_or_name.t;
  8. unknown_arity_call_witnesses : Flambda2_identifiers.Code_id_or_name.t list;
}
type apply_dep = {
  1. function_containing_apply_expr : Flambda2_identifiers.Code_id.t option;
  2. apply_code_id : Flambda2_identifiers.Code_id.t;
  3. apply_closure : Flambda2_term_basics.Simple.t option;
  4. apply_call_witness : Flambda2_identifiers.Code_id_or_name.t;
}
type t
val create : unit -> Flambda2_reaper.Traverse_acc.t
val add_set_of_closures_dep : Flambda2_identifiers.Name.t -> Flambda2_identifiers.Code_id.t -> only_full_applications:bool -> Flambda2_reaper.Traverse_acc.t -> unit