A module internal to Incremental. Users should see Incremental_intf.

`Kind.t` is a variant type with one constructor for each kind of node (const, var, map, bind, etc.).

`include module type of sig ... end`
`type 'a t``= 'a Incremental_kernel__Types.Kind.t``=`

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