Incremental__.Bind
include module type of sig ... end
type ('a, 'b) t
= ('a, 'b) Incremental__Types.Bind.t
=
{
main : 'b Incremental__Types.Node.t;
mutable f : 'a -> 'b Incremental__Types.Node.t;
lhs : 'a Incremental__Types.Node.t;
lhs_change : unit Incremental__Types.Node.t;
mutable rhs : 'b Incremental__Types.Node.t Incremental__.Import.Uopt.t;
mutable rhs_scope : Incremental__Types.Scope.t;
mutable all_nodes_created_on_rhs : Incremental__Types.Node.Packed.t Incremental__.Import.Uopt.t;
}
include Core_kernel.Invariant.S2 with type ('a, 'b) t := ('a, 'b) t
val invariant : 'a Base__.Invariant_intf.inv -> 'b Base__.Invariant_intf.inv -> ('a, 'b) t Base__.Invariant_intf.inv
include Incremental__.Sexp_of.S2 with type ('a, 'b) t := ('a, 'b) t
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> ('b -> Ppx_sexp_conv_lib.Sexp.t) -> ('a, 'b) t -> Ppx_sexp_conv_lib.Sexp.t
val is_valid : (_, _) t -> bool
is_valid t iff the scope in which t was created is valid.
is_valid t
t
val iter_nodes_created_on_rhs : (_, _) t -> f:(Incremental__.Types.Node.Packed.t -> unit) -> unit