sig
  type t
  module V : sig type t end
  val iter_vertex : (Traverse.GM.V.t -> unit) -> Traverse.GM.t -> unit
  val iter_succ :
    (Traverse.GM.V.t -> unit) -> Traverse.GM.t -> Traverse.GM.V.t -> unit
  module Mark :
    sig
      val clear : Traverse.GM.t -> unit
      val get : Traverse.GM.V.t -> int
      val set : Traverse.GM.V.t -> int -> unit
    end
end