sig
module type GRAPH_acyclic =
sig
type graph
and node
val iter_nodes :
(Avl_kernel.GRAPH_acyclic.node -> unit) ->
Avl_kernel.GRAPH_acyclic.graph -> unit
val iter_successors :
(Avl_kernel.GRAPH_acyclic.node -> unit) ->
Avl_kernel.GRAPH_acyclic.node -> unit
val get : Avl_kernel.GRAPH_acyclic.node -> int
val set : Avl_kernel.GRAPH_acyclic.node -> int -> unit
end
module Make_acyclic :
functor (X : GRAPH_acyclic) ->
sig
exception Cyclic
val fold : 'a -> (X.node -> X.node -> 'a -> 'a) -> X.graph -> 'a
end
type 'a scc
val scc : unit -> 'a Avl_kernel.scc
module type GRAPH =
sig
type graph
and node
val iter_nodes :
(Avl_kernel.GRAPH.node -> unit) -> Avl_kernel.GRAPH.graph -> unit
val iter_successors :
(Avl_kernel.GRAPH.node -> unit) -> Avl_kernel.GRAPH.node -> unit
val get_scc :
Avl_kernel.GRAPH.node -> Avl_kernel.GRAPH.node Avl_kernel.scc
val set_scc :
Avl_kernel.GRAPH.node -> Avl_kernel.GRAPH.node Avl_kernel.scc -> unit
val get : Avl_kernel.GRAPH.node -> int
val set : Avl_kernel.GRAPH.node -> int -> unit
end
module Make :
functor (X : GRAPH) ->
sig
val fold : 'a -> (X.node -> X.node -> 'a -> 'a) -> X.graph -> 'a
end
end