module type GRAPH =
The client must provide an implementation of graph which
fullfills the signature
The type of graphs.
The type of nodes.
val iter_nodes :
(node -> unit) -> graph -> unit
iter_nodes f g applies
f on every nodes of the graph
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 :
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