sig
  type t
  type vertex
  val n : Sig.GraphAlgo.t -> int
  val iter_vertex : (Sig.GraphAlgo.vertex -> unit) -> Sig.GraphAlgo.t -> unit
  val iter_succ :
    (Sig.GraphAlgo.vertex -> unit) ->
    Sig.GraphAlgo.t -> Sig.GraphAlgo.vertex -> unit
  module V :
    sig
      type t
      type key = vertex
      type value = vertex
      val create : int -> t
      val set : t -> key -> value -> unit
      val get : t -> key -> value
    end
  module I :
    sig
      type t
      type key = vertex
      type value = int
      val create : int -> t
      val set : t -> key -> value -> unit
      val get : t -> key -> value
    end
  val m : Sig.GraphAlgo.t -> int
  val string_of_vertex : Sig.GraphAlgo.t -> Sig.GraphAlgo.vertex -> string
end