functor (G : G->
  sig
    val iter : (G.V.t -> unit) -> Traverse.G.t -> unit
    val iter_component : (G.V.t -> unit) -> Traverse.G.t -> G.V.t -> unit
    val fold : (G.V.t -> '-> 'a) -> '-> Traverse.G.t -> 'a
    val fold_component :
      (G.V.t -> '-> 'a) -> '-> Traverse.G.t -> G.V.t -> 'a
    type iterator
    val start : Traverse.G.t -> Traverse.Bfs.iterator
    val step : Traverse.Bfs.iterator -> Traverse.Bfs.iterator
    val get : Traverse.Bfs.iterator -> G.V.t
  end