sig
  type t
  val create : ?n:int -> ?m:int -> unit -> IntDigraph.S.t
  val n : IntDigraph.S.t -> int
  val n_mem : IntDigraph.S.t -> int
  val m : IntDigraph.S.t -> int
  val add_vertex : IntDigraph.S.t -> int -> unit
  val del_vertex : IntDigraph.S.t -> IntDigraph.S.t -> int -> unit
  val mem_vertex : IntDigraph.S.t -> int -> bool
  val add_edge : IntDigraph.S.t -> int -> int -> unit
  val del_edge : ?only_first:bool -> IntDigraph.S.t -> int -> int -> unit
  val mem_edge : IntDigraph.S.t -> int -> int -> bool
  val multiplicity_edge : IntDigraph.S.t -> int -> int -> int
  val out_degree : IntDigraph.S.t -> int -> int
  val reverse : ?store_reverse:bool -> IntDigraph.S.t -> IntDigraph.S.t
  val symmetrize : IntDigraph.S.t -> unit
  val sort : ?store_reverse:bool -> IntDigraph.S.t -> unit
  val iter_succ : (int -> unit) -> IntDigraph.S.t -> int -> unit
  val fold_succ : (int -> '-> 'a) -> IntDigraph.S.t -> int -> '-> 'a
  val iter_vertex : (int -> unit) -> IntDigraph.S.t -> unit
  val fold_vertex : (int -> '-> 'a) -> IntDigraph.S.t -> '-> 'a
  val iter_edges : (int -> int -> unit) -> IntDigraph.S.t -> unit
  val fold_edges : (int -> int -> '-> 'a) -> IntDigraph.S.t -> '-> 'a
  val in_degree : IntDigraph.S.t -> int -> int
  val iter_pred : (int -> unit) -> IntDigraph.S.t -> int -> unit
  val fold_pred : (int -> '-> 'a) -> IntDigraph.S.t -> int -> '-> 'a
  val dump : Pervasives.out_channel -> IntDigraph.S.t -> unit
  val to_string : IntDigraph.S.t -> string
end