Parameter Make.Rec_info_expr
module Unrolling_state : sig ... endtype t = private | Const of {depth : int Flambda2_numbers.Or_infinity.t;unrolling : Rec_info_expr.Unrolling_state.t;
}| Var of Rec_info_expr.variable(*A variable of kind
*)Flambda_kind.rec_info.| Succ of Rec_info_expr.t(*The next depth. If we inline an occurrence with depth
*)d, then in the inlined body, recursive references will have depthsucc d.| Unroll_to of int * Rec_info_expr.t(*Indicate the depth to which unrolling should proceed. The unroll depth is decremented by
*)Succuntil it reaches zero, at which point all unrolling should stop.
An expression for the state of recursive inlining at a given occurrence. Forms the right-hand side of a Let_expr binding for a depth variable.
val initial : Rec_info_expr.tval unknown : Rec_info_expr.tval do_not_inline : Rec_info_expr.tval const :
depth:int Flambda2_numbers.Or_infinity.t ->
unrolling:Rec_info_expr.Unrolling_state.t ->
Rec_info_expr.tval var : Rec_info_expr.variable -> Rec_info_expr.tval succ : Rec_info_expr.t -> Rec_info_expr.tval unroll_to : int -> Rec_info_expr.t -> Rec_info_expr.tval is_obviously_initial : Rec_info_expr.t -> boolval print : Stdlib.Format.formatter -> Rec_info_expr.t -> unitval equal : Rec_info_expr.t -> Rec_info_expr.t -> boolval hash : Rec_info_expr.t -> intval map_depth_variables :
Rec_info_expr.t ->
f:(Rec_info_expr.variable -> Rec_info_expr.variable) ->
Rec_info_expr.tval erase_variables : Rec_info_expr.t -> Rec_info_expr.t