val create : ?size:int -> unit -> t
val add_vertex : t -> V.t -> unit
val remove_vertex : t -> V.t -> unit
val add_edge : t -> V.t -> V.t -> unit
val add_edge_e : t -> E.t -> unit
val remove_edge : t -> V.t -> V.t -> unit
val remove_edge_e : t -> E.t -> unit
module Mark : sig ... end
val out_degree : t -> V.t -> int
val in_degree : t -> V.t -> int
val mem_vertex : t -> V.t -> bool
val mem_edge : t -> V.t -> V.t -> bool
val mem_edge_e : t -> E.t -> bool
val iter_vertex : (V.t -> unit) -> t -> unit
val iter_edges : (V.t -> V.t -> unit) -> t -> unit
val fold_vertex : (V.t -> 'a -> 'a) -> t -> 'a -> 'a
val fold_edges : (V.t -> V.t -> 'a -> 'a) -> t -> 'a -> 'a
val iter_edges_e : (E.t -> unit) -> t -> unit
val fold_edges_e : (E.t -> 'a -> 'a) -> t -> 'a -> 'a
val iter_succ : (V.t -> unit) -> t -> V.t -> unit
val iter_pred : (V.t -> unit) -> t -> V.t -> unit
val fold_succ : (V.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val fold_pred : (V.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val iter_succ_e : (E.t -> unit) -> t -> V.t -> unit
val fold_succ_e : (E.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val iter_pred_e : (E.t -> unit) -> t -> V.t -> unit
val fold_pred_e : (E.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val find_vertex : t -> int -> V.t
val transitive_closure : ?reflexive:bool -> t -> t
val add_transitive_closure : ?reflexive:bool -> t -> t
val transitive_reduction : ?reflexive:bool -> t -> t
val replace_by_transitive_reduction : ?reflexive:bool -> t -> t
val intersect : t -> t -> t
module Rand : sig ... end
val shortest_path : t -> V.t -> V.t -> E.t list * int
val ford_fulkerson : t -> V.t -> V.t -> (E.t -> int) * int
val goldberg_tarjan : t -> V.t -> V.t -> (E.t -> int) * int
val bellman_ford : t -> V.t -> E.t list
val spanningtree : t -> E.t list
val dot_output : t -> string -> unit
val display_with_gv : t -> unit
val parse_gml_file : string -> t
val parse_dot_file : string -> t
val print_gml_file : t -> string -> unit