Functor Service_graph.Make

module Make: 
functor (G : sig
type t 
module V: sig .. end
val iter_vertex : (V.t -> unit) -> t -> unit
val iter_succ : (V.t -> unit) ->
t -> V.t -> unit
val iter_pred : (V.t -> unit) ->
t -> V.t -> unit
val fold_pred : (V.t -> 'a -> 'a) ->
t -> V.t -> 'a -> 'a
val datatype_name : string
end-> S  with type node = G.V.t and type graph = G.t

Generic functor implementing the services algorithm according to a graph implementation.

Parameters:
G : sig type t module V: sig (** @modify Oxygen-20120901 require [compare] *) include Graph.Sig.COMPARABLE val id: t -> int (** assume [id >= 0] and unique for each vertices of the graph *) val name: t -> string val attributes: t -> Graph.Graphviz.DotAttributes.vertex list val entry_point: unit -> t option (** @modify Nitrogen-20111001 return an option*) end val iter_vertex : (V.t -> unit) -> t -> unit val iter_succ : (V.t -> unit) -> t -> V.t -> unit val iter_pred : (V.t -> unit) -> t -> V.t -> unit val fold_pred : (V.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a val datatype_name: string end

type node 
type graph 
module Service_graph: sig .. end
val vertex : node -> node Service_graph.vertex
val compute : graph ->
Datatype.String.Set.t -> Service_graph.t
val output_graph : Stdlib.out_channel -> Service_graph.t -> unit
val entry_point : unit -> Service_graph.V.t option

compute must be called before

module TP: Graph.Graphviz.GraphWithDotAttrs 
    with type t = Service_graph.t
    and type V.t = node vertex
    and type E.t = Service_graph.E.t