## State

Each call to `Incremental.Make` creates shared state used by all the incremental functions.

`type t`````
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`

`invariant` checks invariants of all necessary nodes, as well as other data structures used for stabilization.

`include Core_kernel.Invariant.S with type t := t`
`type t`````
`val invariant : t Base__.Invariant_intf.inv`
`val t : t`

`t` is the shared state for this call to `Incremental.Make`.

`val max_height_allowed : t ‑> int`
`val set_max_height_allowed : t ‑> int ‑> unit`

`set_max_height_allowed t height` sets the maximum allowed height of nodes. `set_max_height_allowed` raises if called during stabilization, or if `height < max_height_seen t`.

`val num_active_observers : t ‑> int`

`num_active_observers` returns (in constant time) the number of observers that have been created and not yet disallowed (either explicitly or via finalization).

`val max_height_seen : t ‑> int`

constant-time stats.

`val num_nodes_became_necessary : t ‑> int`
`val num_nodes_became_unnecessary : t ‑> int`
`val num_nodes_changed : t ‑> int`
`val num_nodes_created : t ‑> int`
`val num_nodes_invalidated : t ‑> int`
`val num_nodes_recomputed : t ‑> int`
`val num_nodes_recomputed_directly_because_one_child : t ‑> int`
`val num_nodes_recomputed_directly_because_min_height : t ‑> int`
`val num_stabilizes : t ‑> int`
`val num_var_sets : t ‑> int`
`val timing_wheel_length : t ‑> int`
`module Stats : sig ... end`

`Stats` contains information about the DAG intended for human consumption.

`val stats : t ‑> Stats.t`