module type GRAPH = sig end
The client must provide an implementation of graph which
fullfills the signature GRAPH
.
type graph
The type of graphs.
type node
The type of nodes.
val iter_nodes : (node -> unit) -> graph -> unit
iter_nodes f g
applies f
on every nodes of the graph g
. The
order in which nodes are considered does not matter. However, each
node must be considered exactly once.
val iter_successors : (node -> unit) -> node -> unit
iter_successors f nd
applies f
on every successors of the node
nd
in its graph. The order in which successors are considere does
not matter. Multiple occurences of the same successor are allowed.
val get_scc : node -> node Avl_kernel.scc
Every node must carry a transient field of type node scc
.
The following functions allows reading and updating this field.
val set_scc : node -> node Avl_kernel.scc -> unit
val get : node -> int
Every node must carry a transient integer field. No
assumption is made about the initial content. The following
functions allows reading and updating this field.
val set : node -> int -> unit