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
    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