sig   val frama_c_display : bool -> unit   type 'a vertex = private {     node : 'a;     mutable is_root : bool;     mutable root : 'Service_graph.vertex;   }   type edge = private Inter_services | Inter_functions | Both   module type S =     sig       type node       type graph       module Service_graph :         sig           type t           module V :             sig               type t = node vertex               val compare : t -> t -> int               val hash : t -> int               val equal : t -> t -> bool               type label               val create : label -> t               val label : t -> label             end           type vertex = V.t           module E :             sig               type t               val compare : t -> t -> int               type vertex = vertex               val src : t -> vertex               val dst : t -> vertex               type label = edge               val create : vertex -> label -> vertex -> t               val label : t -> label             end           type edge = E.t           val is_directed : bool           val is_empty : t -> bool           val nb_vertex : t -> int           val nb_edges : t -> int           val out_degree : t -> vertex -> int           val in_degree : t -> vertex -> int           val mem_vertex : t -> vertex -> bool           val mem_edge : t -> vertex -> vertex -> bool           val mem_edge_e : t -> edge -> bool           val find_edge : t -> vertex -> vertex -> edge           val find_all_edges : t -> vertex -> vertex -> edge list           val succ : t -> vertex -> vertex list           val pred : t -> vertex -> vertex list           val succ_e : t -> vertex -> edge list           val pred_e : t -> vertex -> edge list           val iter_vertex : (vertex -> unit) -> t -> unit           val fold_vertex : (vertex -> '-> 'a) -> t -> '-> 'a           val iter_edges : (vertex -> vertex -> unit) -> t -> unit           val fold_edges : (vertex -> vertex -> '-> 'a) -> t -> '-> 'a           val iter_edges_e : (edge -> unit) -> t -> unit           val fold_edges_e : (edge -> '-> 'a) -> t -> '-> 'a           val map_vertex : (vertex -> vertex) -> t -> t           val iter_succ : (vertex -> unit) -> t -> vertex -> unit           val iter_pred : (vertex -> unit) -> t -> vertex -> unit           val fold_succ : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a           val fold_pred : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a           val iter_succ_e : (edge -> unit) -> t -> vertex -> unit           val fold_succ_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a           val iter_pred_e : (edge -> unit) -> t -> vertex -> unit           val fold_pred_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a           module Datatype :             sig               type t = t               val ty : t Type.t               val name : string               val descr : t Descr.t               val packed_descr : Structural_descr.pack               val reprs : t list               val equal : t -> t -> bool               val compare : t -> t -> int               val hash : t -> int               val pretty_code : Format.formatter -> t -> unit               val internal_pretty_code :                 Type.precedence -> Format.formatter -> t -> unit               val pretty : Format.formatter -> t -> unit               val varname : t -> string               val mem_project : (Project_skeleton.t -> bool) -> t -> bool               val copy : t -> t             end         end       val compute :         Service_graph.S.graph ->         Datatype.String.Set.t -> Service_graph.S.Service_graph.t       val output_graph :         Pervasives.out_channel -> Service_graph.S.Service_graph.t -> unit       val entry_point : unit -> Service_graph.S.Service_graph.V.t option       module TP :         sig           type t = Service_graph.t           module V :             sig               type t = node vertex               val compare : t -> t -> int               val hash : t -> int               val equal : t -> t -> bool               type label               val create : label -> t               val label : t -> label             end           type vertex = V.t           module E :             sig               type t = Service_graph.E.t               val compare : t -> t -> int               type vertex = vertex               val src : t -> vertex               val dst : t -> vertex               type label               val create : vertex -> label -> vertex -> t               val label : t -> label             end           type edge = E.t           val is_directed : bool           val is_empty : t -> bool           val nb_vertex : t -> int           val nb_edges : t -> int           val out_degree : t -> vertex -> int           val in_degree : t -> vertex -> int           val mem_vertex : t -> vertex -> bool           val mem_edge : t -> vertex -> vertex -> bool           val mem_edge_e : t -> edge -> bool           val find_edge : t -> vertex -> vertex -> edge           val find_all_edges : t -> vertex -> vertex -> edge list           val succ : t -> vertex -> vertex list           val pred : t -> vertex -> vertex list           val succ_e : t -> vertex -> edge list           val pred_e : t -> vertex -> edge list           val iter_vertex : (vertex -> unit) -> t -> unit           val fold_vertex : (vertex -> '-> 'a) -> t -> '-> 'a           val iter_edges : (vertex -> vertex -> unit) -> t -> unit           val fold_edges : (vertex -> vertex -> '-> 'a) -> t -> '-> 'a           val iter_edges_e : (edge -> unit) -> t -> unit           val fold_edges_e : (edge -> '-> 'a) -> t -> '-> 'a           val map_vertex : (vertex -> vertex) -> t -> t           val iter_succ : (vertex -> unit) -> t -> vertex -> unit           val iter_pred : (vertex -> unit) -> t -> vertex -> unit           val fold_succ : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a           val fold_pred : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a           val iter_succ_e : (edge -> unit) -> t -> vertex -> unit           val fold_succ_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a           val iter_pred_e : (edge -> unit) -> t -> vertex -> unit           val fold_pred_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a           val graph_attributes : t -> Graph.Graphviz.DotAttributes.graph list           val default_vertex_attributes :             t -> Graph.Graphviz.DotAttributes.vertex list           val vertex_name : V.t -> string           val vertex_attributes :             V.t -> Graph.Graphviz.DotAttributes.vertex list           val default_edge_attributes :             t -> Graph.Graphviz.DotAttributes.edge list           val edge_attributes : E.t -> Graph.Graphviz.DotAttributes.edge list           val get_subgraph :             V.t -> Graph.Graphviz.DotAttributes.subgraph option         end     end   module Make :     functor       (G : sig              type t              module V :                sig                  type t                  val compare : t -> t -> int                  val hash : t -> int                  val equal : t -> t -> bool                  val id : Service_graph.Make.t -> int                  val name : Service_graph.Make.t -> string                  val attributes :                    Service_graph.Make.t ->                    Graph.Graphviz.DotAttributes.vertex list                  val entry_point : unit -> Service_graph.Make.t option                end              val iter_vertex :                (Service_graph.Make.V.t -> unit) ->                Service_graph.Make.t -> unit              val iter_succ :                (Service_graph.Make.V.t -> unit) ->                Service_graph.Make.t -> Service_graph.Make.V.t -> unit              val iter_pred :                (Service_graph.Make.V.t -> unit) ->                Service_graph.Make.t -> Service_graph.Make.V.t -> unit              val fold_pred :                (Service_graph.Make.V.t -> '-> 'a) ->                Service_graph.Make.t -> Service_graph.Make.V.t -> '-> 'a              val datatype_name : string            end->       sig         type node = G.V.t         type graph = G.t         module Service_graph :           sig             type t             module V :               sig                 type t = node vertex                 val compare : t -> t -> int                 val hash : t -> int                 val equal : t -> t -> bool                 type label                 val create : label -> t                 val label : t -> label               end             type vertex = V.t             module E :               sig                 type t                 val compare : t -> t -> int                 type vertex = vertex                 val src : t -> vertex                 val dst : t -> vertex                 type label = edge                 val create : vertex -> label -> vertex -> t                 val label : t -> label               end             type edge = E.t             val is_directed : bool             val is_empty : t -> bool             val nb_vertex : t -> int             val nb_edges : t -> int             val out_degree : t -> vertex -> int             val in_degree : t -> vertex -> int             val mem_vertex : t -> vertex -> bool             val mem_edge : t -> vertex -> vertex -> bool             val mem_edge_e : t -> edge -> bool             val find_edge : t -> vertex -> vertex -> edge             val find_all_edges : t -> vertex -> vertex -> edge list             val succ : t -> vertex -> vertex list             val pred : t -> vertex -> vertex list             val succ_e : t -> vertex -> edge list             val pred_e : t -> vertex -> edge list             val iter_vertex : (vertex -> unit) -> t -> unit             val fold_vertex : (vertex -> '-> 'a) -> t -> '-> 'a             val iter_edges : (vertex -> vertex -> unit) -> t -> unit             val fold_edges : (vertex -> vertex -> '-> 'a) -> t -> '-> 'a             val iter_edges_e : (edge -> unit) -> t -> unit             val fold_edges_e : (edge -> '-> 'a) -> t -> '-> 'a             val map_vertex : (vertex -> vertex) -> t -> t             val iter_succ : (vertex -> unit) -> t -> vertex -> unit             val iter_pred : (vertex -> unit) -> t -> vertex -> unit             val fold_succ : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a             val fold_pred : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a             val iter_succ_e : (edge -> unit) -> t -> vertex -> unit             val fold_succ_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a             val iter_pred_e : (edge -> unit) -> t -> vertex -> unit             val fold_pred_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a             module Datatype :               sig                 type t = t                 val ty : t Type.t                 val name : string                 val descr : t Descr.t                 val packed_descr : Structural_descr.pack                 val reprs : t list                 val equal : t -> t -> bool                 val compare : t -> t -> int                 val hash : t -> int                 val pretty_code : Format.formatter -> t -> unit                 val internal_pretty_code :                   Type.precedence -> Format.formatter -> t -> unit                 val pretty : Format.formatter -> t -> unit                 val varname : t -> string                 val mem_project : (Project_skeleton.t -> bool) -> t -> bool                 val copy : t -> t               end           end         val compute : graph -> Datatype.String.Set.t -> Service_graph.t         val output_graph : out_channel -> Service_graph.t -> unit         val entry_point : unit -> Service_graph.V.t option         module TP :           sig             type t = Service_graph.t             module V :               sig                 type t = node vertex                 val compare : t -> t -> int                 val hash : t -> int                 val equal : t -> t -> bool                 type label                 val create : label -> t                 val label : t -> label               end             type vertex = V.t             module E :               sig                 type t = Service_graph.E.t                 val compare : t -> t -> int                 type vertex = vertex                 val src : t -> vertex                 val dst : t -> vertex                 type label                 val create : vertex -> label -> vertex -> t                 val label : t -> label               end             type edge = E.t             val is_directed : bool             val is_empty : t -> bool             val nb_vertex : t -> int             val nb_edges : t -> int             val out_degree : t -> vertex -> int             val in_degree : t -> vertex -> int             val mem_vertex : t -> vertex -> bool             val mem_edge : t -> vertex -> vertex -> bool             val mem_edge_e : t -> edge -> bool             val find_edge : t -> vertex -> vertex -> edge             val find_all_edges : t -> vertex -> vertex -> edge list             val succ : t -> vertex -> vertex list             val pred : t -> vertex -> vertex list             val succ_e : t -> vertex -> edge list             val pred_e : t -> vertex -> edge list             val iter_vertex : (vertex -> unit) -> t -> unit             val fold_vertex : (vertex -> '-> 'a) -> t -> '-> 'a             val iter_edges : (vertex -> vertex -> unit) -> t -> unit             val fold_edges : (vertex -> vertex -> '-> 'a) -> t -> '-> 'a             val iter_edges_e : (edge -> unit) -> t -> unit             val fold_edges_e : (edge -> '-> 'a) -> t -> '-> 'a             val map_vertex : (vertex -> vertex) -> t -> t             val iter_succ : (vertex -> unit) -> t -> vertex -> unit             val iter_pred : (vertex -> unit) -> t -> vertex -> unit             val fold_succ : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a             val fold_pred : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a             val iter_succ_e : (edge -> unit) -> t -> vertex -> unit             val fold_succ_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a             val iter_pred_e : (edge -> unit) -> t -> vertex -> unit             val fold_pred_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a             val graph_attributes :               t -> Graph.Graphviz.DotAttributes.graph list             val default_vertex_attributes :               t -> Graph.Graphviz.DotAttributes.vertex list             val vertex_name : V.t -> string             val vertex_attributes :               V.t -> Graph.Graphviz.DotAttributes.vertex list             val default_edge_attributes :               t -> Graph.Graphviz.DotAttributes.edge list             val edge_attributes :               E.t -> Graph.Graphviz.DotAttributes.edge list             val get_subgraph :               V.t -> Graph.Graphviz.DotAttributes.subgraph option           end       end end