sig
  type t
  module V : Sig.COMPARABLE
  val iter_vertex : (V.t -> unit) -> t -> unit
  val fold_vertex : (V.t -> '-> 'a) -> t -> '-> 'a
  val iter_succ : (V.t -> unit) -> t -> V.t -> unit
  val fold_succ : (V.t -> '-> 'a) -> t -> V.t -> '-> 'a
  module Mark :
    sig
      val clear : t -> unit
      val get : V.t -> int
      val set : V.t -> int -> unit
    end
end