Node Graphs
type 'a t = 'a S.tThe type for store handles.
type metadata = S.Val.metadataThe type for node metadata.
type contents = S.Contents.keyThe type of user-defined contents.
type node = S.keyThe type for node values.
type step = S.Path.stepThe type of steps. A step is used to pass from one node to another.
find t n p is the contents of the path p starting form n.
add t n p v is the node x such that find t x p is Some v and it behaves the same n for other operations.
remove t n path is the node x such that find t x is None and it behhaves then same as n for other operations.
closure t min max is the unordered list of nodes n reachable from a node of max along a path which: (i) either contains no min or (ii) it ends with a min.
Note: Both min and max are subsets of n.
val iter : [> `Read ] t -> min:node list -> max:node list -> ?node:(node -> unit Lwt.t) -> ?edge:(node -> node -> unit Lwt.t) -> ?skip:(node -> bool Lwt.t) -> ?rev:bool -> unit -> unit Lwt.titer min max node edge skip rev () iterates in topological order over the closure of t as specified by GRAPH.closure.
It applies three functions while traversing the graph: node on the nodes; edge n predecessor_of_n on the directed edges and skip n to not include a node n, its predecessors and the outgoing edges of n.
If rev is true (the default) then the graph is traversed in the reverse order: node n is applied only after it was applied on all its predecessors; edge n p is applied after node n. Note that edge n p is applied even if p is skipped.