sig
  type visit_info =
    Traversal(A).visit_info = {
    nb : int;
    dist : int;
    parent : int;
  }
  type t = Traversal(A).t = { visit : visit_info A.t; mutable n : int; }
  val non_vertex : int
  val visit_nb : t -> int -> int
  val visited : t -> int -> bool
  val parent : t -> int -> int
  val dist : t -> int -> int
  val nb_visited : t -> int
  val nb_nodes : t -> int
  exception Found of int
  val last_visited : t -> int
  val order : t -> int A.t
  val iter_path : (int -> 'a) -> t -> int -> int -> unit
  val fold_path : (int -> '-> 'a) -> t -> int -> int -> '-> 'a
  val path_rev : t -> int -> int -> int list
  val path : t -> int -> int -> int list
  val make : int -> t
  val set : t -> int -> int -> int -> int -> unit
end