Module Incremental_kernel__.Kind

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'a0Incremental_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'dIncremental_kernel__Types.Bind.t ‑> unit t
| Bind_main : ('e'a1Incremental_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'a3Incremental_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 t := a t
type 'a t
include Incremental_kernel__.Sexp_of.S1 with type 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