`functor (G : G) ->
sig
val iter :
?pre:(G.V.t -> unit) -> ?post:(G.V.t -> unit) -> Traverse.G.t -> unit
val prefix : (G.V.t -> unit) -> Traverse.G.t -> unit
val postfix : (G.V.t -> unit) -> Traverse.G.t -> unit
val iter_component :
?pre:(G.V.t -> unit) ->
?post:(G.V.t -> unit) -> Traverse.G.t -> G.V.t -> unit
val prefix_component : (G.V.t -> unit) -> Traverse.G.t -> G.V.t -> unit
val postfix_component : (G.V.t -> unit) -> Traverse.G.t -> G.V.t -> unit
type iterator
val start : Traverse.G.t -> Traverse.Dfs.iterator
val step : Traverse.Dfs.iterator -> Traverse.Dfs.iterator
val get : Traverse.Dfs.iterator -> G.V.t
val has_cycle : Traverse.G.t -> bool
end`