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