`module type GRAPH = ``sig end`

`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 : ``node -> int`

Every node must carry a transient integer field. No assumption
is made on the initial content of this field. The following
functions allows reading and updating this field.

`val set : ``node -> int -> unit`