Module Rec_info_expr0.Make
Parameters
Signature
type variable = Variable.tmodule Unrolling_state : sig ... endtype t = private | Const of {depth : int Flambda2_numbers.Or_infinity.t;unrolling : Unrolling_state.t;
}| Var of variable(*A variable of kind
*)Flambda_kind.rec_info.| Succ of 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 * 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 : tval unknown : tval do_not_inline : tval const :
depth:int Flambda2_numbers.Or_infinity.t ->
unrolling:Unrolling_state.t ->
tval is_obviously_initial : t -> boolval print : Stdlib.Format.formatter -> t -> unitval hash : t -> int