Functor FGraph1.Make

module Make: 
functor (T : T) -> S with type vertex=T.MapV.key and module SetV=T.MapV.Setkey and module SetE=T.MapE.Setkey and module MapV=T.MapV and module MapE=T.MapE
Parameters:
T : T

type vertex 
The type of vertices
module SetV: Sette.S  with type elt=vertex
The type of sets of vertices
module SetE: Sette.S  with type elt=vertex*vertex
The type of sets of edges
module MapV: Mappe.S  with type key=vertex and module Setkey=SetV
The Map for vertices
module MapE: Mappe.S  with type key=vertex*vertex and module Setkey=SetE
The Map for edges
type ('b, 'c, 'd) t 
The type of graphs, where:
val info : ('b, 'c, 'd) t -> 'd
val set_info : ('b, 'c, 'd) t -> 'd -> ('b, 'c, 'd) t
val succ : ('b, 'c, 'd) t -> vertex -> SetV.t
val pred : ('b, 'c, 'd) t -> vertex -> SetV.t
val attrvertex : ('b, 'c, 'd) t -> vertex -> 'b
val attredge : ('b, 'c, 'd) t -> vertex * vertex -> 'c
val empty : 'd -> ('b, 'c, 'd) t
val size : ('b, 'c, 'd) t -> int
val is_empty : ('b, 'c, 'd) t -> bool
val is_vertex : ('b, 'c, 'd) t -> vertex -> bool
val is_edge : ('b, 'c, 'd) t -> vertex * vertex -> bool
val vertices : ('b, 'c, 'd) t -> SetV.t
val edges : ('b, 'c, 'd) t -> SetE.t
val map_vertex : ('b, 'c, 'd) t ->
(vertex -> 'b -> 'e) -> ('e, 'c, 'd) t
val map_edge : ('b, 'c, 'd) t ->
(vertex * vertex -> 'c -> 'e) -> ('b, 'e, 'd) t
val map_info : ('b, 'c, 'd) t -> ('d -> 'e) -> ('b, 'c, 'e) t
val map : ('b, 'c, 'd) t ->
(vertex -> 'b -> 'bb) ->
(vertex * vertex -> 'c -> 'cc) ->
('d -> 'dd) -> ('bb, 'cc, 'dd) t
val iter_vertex : ('b, 'c, 'd) t ->
(vertex -> 'b -> SetV.t -> unit) -> unit
val iter_edge : ('b, 'c, 'd) t ->
(vertex * vertex -> 'c -> unit) -> unit
val fold_vertex : ('b, 'c, 'd) t ->
'e -> (vertex -> 'b -> SetV.t -> 'e -> 'e) -> 'e
val fold_edge : ('b, 'c, 'd) t ->
'e -> (vertex * vertex -> 'c -> 'e -> 'e) -> 'e
val add_edge : ('b, 'c, 'd) t ->
vertex * vertex -> 'c -> ('b, 'c, 'd) t
val remove_edge : ('b, 'c, 'd) t ->
vertex * vertex -> ('b, 'c, 'd) t
val add_vertex : ('b, 'c, 'd) t ->
vertex -> 'b -> ('b, 'c, 'd) t
val remove_vertex : ('b, 'c, 'd) t -> vertex -> ('b, 'c, 'd) t
val topological_sort : ('b, 'c, 'd) t -> vertex -> vertex list
val topological_sort_multi : vertex ->
('b, 'c, 'd) t -> SetV.t -> vertex list
val reachable : ('b, 'c, 'd) t -> vertex -> SetV.t
val reachable_multi : vertex ->
('b, 'c, 'd) t -> SetV.t -> SetV.t
val cfc : ('b, 'c, 'd) t -> vertex -> vertex list list
val cfc_multi : vertex ->
('b, 'c, 'd) t -> SetV.t -> vertex list list
val scfc : ('b, 'c, 'd) t ->
vertex -> (unit, vertex) Ilist.t
val scfc_multi : vertex ->
('b, 'c, 'd) t ->
SetV.t -> (unit, vertex) Ilist.t
val min : ('b, 'c, 'd) t -> SetV.t
val max : ('b, 'c, 'd) t -> SetV.t
val print : (Format.formatter -> vertex -> unit) ->
(Format.formatter -> 'b -> unit) ->
(Format.formatter -> 'c -> unit) ->
(Format.formatter -> 'd -> unit) ->
Format.formatter -> ('b, 'c, 'd) t -> unit