sig
module type G =
sig
type t
module V : Sig.COMPARABLE
val iter_vertex : (V.t -> unit) -> Components.G.t -> unit
val iter_succ : (V.t -> unit) -> Components.G.t -> V.t -> unit
end
module Make :
functor (G : G) ->
sig
val scc : Components.G.t -> int * (G.V.t -> int)
val scc_array : Components.G.t -> G.V.t list array
val scc_list : Components.G.t -> G.V.t list list
end
module type U =
sig
type t
module V : Sig.COMPARABLE
val iter_vertex : (V.t -> unit) -> Components.U.t -> unit
val iter_edges : (V.t -> V.t -> unit) -> Components.U.t -> unit
end
module Undirected :
functor (G : U) ->
sig
val components : Components.G.t -> int * (G.V.t -> int)
val components_array : Components.G.t -> G.V.t list array
val components_list : Components.G.t -> G.V.t list list
end
end