sig
type edge_kind = [ `Back | `Cross | `Forward ]
type ('v, 'e) t =
[ `Edge of 'e * CCGraph.Traverse.Event.edge_kind
| `Enter of 'v * int * 'e CCGraph.Traverse.path
| `Exit of 'v ]
val get_vertex :
('v, 'e) CCGraph.Traverse.Event.t -> ('v * [ `Enter | `Exit ]) option
val get_enter : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
val get_exit : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
val get_edge : ('v, 'e) CCGraph.Traverse.Event.t -> 'e option
val get_edge_kind :
('v, 'e) CCGraph.Traverse.Event.t ->
('e * CCGraph.Traverse.Event.edge_kind) option
val dfs :
?tbl:'v CCGraph.set ->
?eq:('v -> 'v -> bool) ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
val dfs_tag :
?eq:('v -> 'v -> bool) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
end