sig
  type t
  module V : Sig.COMPARABLE
  module E :
    sig
      type t
      type label
      val label : Path.G.E.t -> Path.G.E.label
      val src : Path.G.E.t -> V.t
      val dst : Path.G.E.t -> V.t
      val create : V.t -> Path.G.E.label -> V.t -> Path.G.E.t
    end
  val iter_vertex : (V.t -> unit) -> Path.G.t -> unit
  val fold_vertex : (V.t -> '-> 'a) -> Path.G.t -> '-> 'a
  val iter_succ : (V.t -> unit) -> Path.G.t -> V.t -> unit
  val iter_succ_e : (Path.G.E.t -> unit) -> Path.G.t -> V.t -> unit
  val fold_edges_e : (Path.G.E.t -> '-> 'a) -> Path.G.t -> '-> 'a
  val nb_vertex : Path.G.t -> int
end