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 : rev_named;parent : rev_expr_holed;
}| Let_cont of {cont : Flambda2_identifiers.Continuation.t;handler : cont_handler;parent : rev_expr_holed;
}| Let_cont_rec of {invariant_params : Flambda2_bound_identifiers.Bound_parameters.t;handlers : cont_handler Flambda2_identifiers.Continuation.Lmap.t;parent : rev_expr_holed;
}
and rev_named = | Named of Flambda2_terms.Flambda.named| Set_of_closures of rev_set_of_closures| Static_consts of rev_static_const_or_code list
and rev_static_const = | Set_of_closures of 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 : 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 : rev_expr;my_closure : Flambda2_identifiers.Variable.t;my_alloc_mode : Flambda2_bound_identifiers.Alloc_mode.For_applications.t;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_bound_identifiers.Alloc_mode.For_allocations.t;
}and cont_handler = {bound_parameters : Flambda2_bound_identifiers.Bound_parameters.t;is_exn_handler : bool;is_cold : bool;expr : rev_expr;
}type t = rev_expr