sig
  type t
  module Vertex :
    sig
      type t
      val print : Format.formatter -> t -> unit
      val compare : Search.G.t -> Search.G.t -> int
    end
  module Edge :
    sig
      type t
      val print : Format.formatter -> t -> unit
      val src : Search.G.t -> Search.G.Vertex.t
      val tgt : Search.G.t -> Search.G.Vertex.t
    end
  val mem_vertex : Search.G.t -> Search.G.Vertex.t -> bool
  val iter_succ :
    (Search.G.Edge.t -> unit) -> Search.G.t -> Search.G.Vertex.t -> unit
  val fold_succ :
    (Search.G.Edge.t -> '-> 'a) ->
    Search.G.t -> Search.G.Vertex.t -> '-> 'a
  val iter_pred :
    (Search.G.Edge.t -> unit) -> Search.G.t -> Search.G.Vertex.t -> unit
  val fold_pred :
    (Search.G.Edge.t -> '-> 'a) ->
    Search.G.t -> Search.G.Vertex.t -> '-> 'a
end