module Make: functor (X : GRAPH) -> sig  end
val fold : 'a -> (X.node -> 'a -> 'a) -> 'b -> ('a -> 'b -> 'b) -> X.graph -> 'b
fold empty add_class singleton add g runs the Tarjan's algorithm
      on the graph 
g.  It returns a partition of the set of the nodes 
      of the graph (i.e. a set of set of nodes), which is computed as 
      follows:
- emptyis the empty partition,
- add_class c padds the class- cto the partition- p,
- singleton ndreturns the class with one element- nd,
- add nd cadd the node- ndto the class- c.
 
val list : X.graph -> X.node list list
list g computes the SCCs of a graph.  The result is a list of list
      of nodes: each list gives the nodes of one of the SCCs.
val unify : (X.node -> X.node -> unit) -> X.graph -> unit
unify unifier graph computes the SCCs of a graph.  For every SCC,
      it chooses a particular node nd, and for every other node nd' of
      the SCC, unifier nd nd' is called.