Module Incremental__.Kind

include module type of sig ... end
type 'a t = 'a Incremental__Types.Kind.t =
| Array_fold : ('b'a0) Incremental__Types.Array_fold.t -> 'a0 t
| At : Incremental__Types.At.t -> Incremental__.Before_or_after.t t
| At_intervals : Incremental__Types.At_intervals.t -> unit t
| Bind_lhs_change : ('c'd) Incremental__Types.Bind.t -> unit t
| Bind_main : ('e'a1) Incremental__Types.Bind.t -> 'a1 t
| Const of 'a
| Expert of 'a Incremental__Types.Expert.t
| Freeze of 'a Incremental__Types.Freeze.t
| If_test_change : 'f Incremental__Types.If_then_else.t -> unit t
| If_then_else of 'a Incremental__Types.If_then_else.t
| Invalid
| Join_lhs_change : 'g Incremental__Types.Join.t -> unit t
| Join_main of 'a Incremental__Types.Join.t
| Map : ('a10 -> 'a2) * 'a10 Incremental__Types.Node.t -> 'a2 t
| Snapshot of 'a Incremental__Types.Snapshot.t
| Step_function of 'a Incremental__Types.Step_function.t
| Uninitialized
| Unordered_array_fold : ('h'a3) Incremental__Types.Unordered_array_fold.t -> 'a3 t
| Var of 'a Incremental__Types.Var.t
| Map2 : ('a11 -> 'a20 -> 'a4) * 'a11 Incremental__Types.Node.t * 'a20 Incremental__Types.Node.t -> 'a4 t
| Map3 : ('a12 -> 'a21 -> 'a30 -> 'a5) * 'a12 Incremental__Types.Node.t * 'a21 Incremental__Types.Node.t * 'a30 Incremental__Types.Node.t -> 'a5 t
| Map4 : ('a13 -> 'a22 -> 'a31 -> 'a40 -> 'a6) * 'a13 Incremental__Types.Node.t * 'a22 Incremental__Types.Node.t * 'a31 Incremental__Types.Node.t * 'a40 Incremental__Types.Node.t -> 'a6 t
| Map5 : ('a14 -> 'a23 -> 'a32 -> 'a41 -> 'a50 -> 'a7) * 'a14 Incremental__Types.Node.t * 'a23 Incremental__Types.Node.t * 'a32 Incremental__Types.Node.t * 'a41 Incremental__Types.Node.t * 'a50 Incremental__Types.Node.t -> 'a7 t
| Map6 : ('a15 -> 'a24 -> 'a33 -> 'a42 -> 'a51 -> 'a60 -> 'a8) * 'a15 Incremental__Types.Node.t * 'a24 Incremental__Types.Node.t * 'a33 Incremental__Types.Node.t * 'a42 Incremental__Types.Node.t * 'a51 Incremental__Types.Node.t * 'a60 Incremental__Types.Node.t -> 'a8 t
| Map7 : ('a16 -> 'a25 -> 'a34 -> 'a43 -> 'a52 -> 'a61 -> 'a70 -> 'a9) * 'a16 Incremental__Types.Node.t * 'a25 Incremental__Types.Node.t * 'a34 Incremental__Types.Node.t * 'a43 Incremental__Types.Node.t * 'a52 Incremental__Types.Node.t * 'a61 Incremental__Types.Node.t * 'a70 Incremental__Types.Node.t -> 'a9 t
| Map8 : ('a17 -> 'a26 -> 'a35 -> 'a44 -> 'a53 -> 'a62 -> 'a71 -> 'a80 -> 'a18) * 'a17 Incremental__Types.Node.t * 'a26 Incremental__Types.Node.t * 'a35 Incremental__Types.Node.t * 'a44 Incremental__Types.Node.t * 'a53 Incremental__Types.Node.t * 'a62 Incremental__Types.Node.t * 'a71 Incremental__Types.Node.t * 'a80 Incremental__Types.Node.t -> 'a18 t
| Map9 : ('a19 -> 'a27 -> 'a36 -> 'a45 -> 'a54 -> 'a63 -> 'a72 -> 'a81 -> 'a90 -> 'a28) * 'a19 Incremental__Types.Node.t * 'a27 Incremental__Types.Node.t * 'a36 Incremental__Types.Node.t * 'a45 Incremental__Types.Node.t * 'a54 Incremental__Types.Node.t * 'a63 Incremental__Types.Node.t * 'a72 Incremental__Types.Node.t * 'a81 Incremental__Types.Node.t * 'a90 Incremental__Types.Node.t -> 'a28 t
include Core_kernel.Invariant.S1 with type 'a t := 'a t
type 'a t
val invariant : 'a Base__.Invariant_intf.inv -> 'a t Base__.Invariant_intf.inv
include Incremental__.Sexp_of.S1 with type 'a t := 'a t
type 'a t
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
val name : _ t -> string
val initial_num_children : _ t -> int
val slow_get_child : _ t -> index:int -> Incremental__.Types.Node.Packed.t

slow_get_child t ~index raises unless 0 <= index < max_num_children t. It will also raise if the index'th child is currently undefined (e.g. a bind node with no current rhs).

val bind_rhs_child_index : int
val freeze_child_index : int
val if_branch_child_index : int
val join_rhs_child_index : int
val iteri_children : _ t -> f:(int -> Incremental__.Types.Node.Packed.t -> unit) -> unit