Functor IntDigraph.Make

module Make (V : VertexVec)  (E : EdgeVec) : sig .. end
Parameters:
V : VertexVec
E : EdgeVec

type v_label = V.label 
type e_label = E.label 
type t = {
   mutable n : int;
   mutable m : int;
   mutable v : V.t;
   mutable e : E.t;
   mutable packed : bool;
   mutable sorted : bool;
   mutable last_src : int;
   mutable reverse : t option;
}
val create : ?n:int -> ?m:int -> unit -> t
val dump : Pervasives.out_channel -> t -> unit
val n : t -> int
val n_mem : t -> int
val m : t -> int
val mem_vertex : t -> int -> bool
val add_edge_l : t -> int -> E.label -> int -> unit
val add_edge : t -> int -> int -> unit
val add_vertex : t -> int -> unit
val add_vertex_l : t -> int -> V.label -> unit
val vertex_l : t -> int -> V.label
val del_edge : ?only_first:bool -> t -> int -> int -> unit
val iter_succ_l : (E.label -> int -> 'a) -> t -> int -> unit
val fold_succ_l : (E.label -> int -> 'a -> 'a) -> t -> int -> 'a -> 'a
val del_vertex : t -> t -> int -> unit
val iter_vertex : (int -> unit) -> t -> unit
val fold_vertex : (int -> 'a -> 'a) -> t -> 'a -> 'a
val iter_edges_l : (int -> E.label -> int -> 'a) -> t -> unit
val out_degree : t -> int -> int
val reverse : ?store_reverse:bool -> t -> t
val sort : ?store_reverse:bool -> t -> unit
val reverse : ?store_reverse:bool -> t -> t
val symmetrize : t -> unit
val iter_succ : (int -> 'a) -> t -> int -> unit
val fold_succ : (int -> 'a -> 'a) -> t -> int -> 'a -> 'a
val in_degree : t -> int -> int
val iter_pred_l : (E.label -> int -> 'a) -> t -> int -> unit
val fold_pred_l : (E.label -> int -> 'a -> 'a) -> t -> int -> 'a -> 'a
val iter_pred : (int -> 'a) -> t -> int -> unit
val fold_pred : (int -> 'a -> 'a) -> t -> int -> 'a -> 'a
val mem_edge : t -> int -> int -> bool
val find_edge_l : t -> int -> int -> E.label
val fold_multi_edge_l : (E.label -> 'a -> 'a) -> t -> int -> int -> 'a -> 'a
val multiplicity_edge : t -> int -> int -> int
val find_all_edges_l : t -> int -> int -> E.label list
val iter_edges : (int -> int -> 'a) -> t -> unit
val fold_edges_l : (int -> E.label -> int -> 'a -> 'a) -> t -> 'a -> 'a
val fold_edges : (int -> int -> 'a -> 'a) -> t -> 'a -> 'a
val iter_vertex_l : (int -> V.label -> unit) -> t -> unit
val fold_vertex_l : (int -> V.label -> 'a -> 'a) -> t -> 'a -> 'a
val label_find_vertex : t -> V.label -> int
val label_add_vertex : t -> V.label -> int
val label_add_edge : t -> V.label -> V.label -> unit
val label_add_edge_l : t -> V.label -> E.label -> V.label -> unit
val to_string : t -> string
val to_string_l : (V.label -> string) ->
?elab_to_str:(E.label -> string) -> t -> string