A module internal to Incremental. Users should see Incremental_intf.

An observer is a root of the incremental DAG -- all descendants of an observer are "necessary", so that stabilization ensures their values are up to date.

`include module type of sig ... end`
`module State = Incremental_kernel__Types.Internal_observer.State`
`type 'a t``= 'a Incremental_kernel__Types.Internal_observer.t``=` `{`

`mutable state : State.t;`
`observing : 'a Incremental_kernel__Types.Node.t;`
`mutable on_update_handlers : 'a Incremental_kernel__.On_update_handler.t list;`
`mutable prev_in_all : Incremental_kernel__Types.Packed_internal_observer.t Incremental_kernel__.Uopt.t;`
`mutable next_in_all : Incremental_kernel__Types.Packed_internal_observer.t Incremental_kernel__.Uopt.t;`
`mutable prev_in_observing : 'a t Incremental_kernel__.Uopt.t;`
`mutable next_in_observing : 'a t Incremental_kernel__.Uopt.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 same : _ t ‑> _ t ‑> bool`
`val observing : 'a t ‑> 'a Incremental_kernel__.Node.t`
`val use_is_allowed : _ t ‑> bool`
`val value_exn : 'a t ‑> 'a`
`val on_update_exn : 'a t ‑> 'a Incremental_kernel__.On_update_handler.t ‑> unit`
`val unlink : _ t ‑> unit`
`module Packed : sig ... end`