Module Flambda2_reaper.Rev_expr
type tail_expr = | Invalid of {}| Apply_cont of Flambda2_terms.Apply_cont_expr.t| Switch of Flambda2_terms.Switch_expr.t| Apply of Flambda2_terms.Apply_expr.t
type rev_expr_holed = | Hole| Let of {bound_pattern : Flambda2_bound_identifiers.Bound_pattern.t;defining_expr : Flambda2_reaper.Rev_expr.rev_named;parent : Flambda2_reaper.Rev_expr.rev_expr_holed;
}| Let_cont of {cont : Flambda2_identifiers.Continuation.t;handler : Flambda2_reaper.Rev_expr.cont_handler;parent : Flambda2_reaper.Rev_expr.rev_expr_holed;
}| Let_cont_rec of {invariant_params : Flambda2_bound_identifiers.Bound_parameters.t;handlers : Flambda2_reaper.Rev_expr.cont_handler Flambda2_identifiers.Continuation.Lmap.t;parent : Flambda2_reaper.Rev_expr.rev_expr_holed;
}
and rev_named = | Named of Flambda2_terms.Flambda.named| Set_of_closures of Flambda2_reaper.Rev_expr.rev_set_of_closures| Static_consts of Flambda2_reaper.Rev_expr.rev_static_const_or_code list
and rev_static_const_or_code = | Code of Flambda2_reaper.Rev_expr.rev_code| Deleted_code| Static_const of Flambda2_reaper.Rev_expr.rev_static_const
and rev_static_const = | Set_of_closures of Flambda2_reaper.Rev_expr.rev_set_of_closures| Other of Flambda2_terms.Static_const.t(*The
*)Set_of_closurescase inStatic_constis not allowed in conjunction withOther.
and rev_code = {params_and_body : Flambda2_reaper.Rev_expr.rev_params_and_body;free_names_of_params_and_body : Flambda2_nominal.Name_occurrences.t;code_metadata : Flambda2_terms.Code_metadata.t;
}and rev_params_and_body = {return_continuation : Flambda2_identifiers.Continuation.t;exn_continuation : Flambda2_identifiers.Continuation.t;params : Flambda2_bound_identifiers.Bound_parameters.t;body : Flambda2_reaper.Rev_expr.rev_expr;my_closure : Flambda2_identifiers.Variable.t;my_region : Flambda2_identifiers.Variable.t option;my_ghost_region : Flambda2_identifiers.Variable.t option;my_depth : Flambda2_identifiers.Variable.t;
}and rev_set_of_closures = {value_slots : Flambda2_term_basics.Simple.t Flambda2_identifiers.Value_slot.Map.t;function_decls : Flambda2_terms.Function_declarations.t;alloc_mode : Flambda2_term_basics.Alloc_mode.For_allocations.t;
}and cont_handler = {bound_parameters : Flambda2_bound_identifiers.Bound_parameters.t;is_exn_handler : bool;is_cold : bool;expr : Flambda2_reaper.Rev_expr.rev_expr;
}and rev_expr = {expr : Flambda2_reaper.Rev_expr.tail_expr;holed_expr : Flambda2_reaper.Rev_expr.rev_expr_holed;
}type t = Flambda2_reaper.Rev_expr.rev_expr