sig
  module Graph :
    functor (G : Sig.G->
      sig
        module VertexSet :
          sig
            type elt = G.V.t
            type t = Set.Make(G.V).t
            val empty : t
            val is_empty : t -> bool
            val mem : elt -> t -> bool
            val add : elt -> t -> t
            val singleton : elt -> t
            val remove : elt -> t -> t
            val union : t -> t -> t
            val inter : t -> t -> t
            val diff : t -> t -> t
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val subset : t -> t -> bool
            val iter : (elt -> unit) -> t -> unit
            val fold : (elt -> '-> 'a) -> t -> '-> 'a
            val for_all : (elt -> bool) -> t -> bool
            val exists : (elt -> bool) -> t -> bool
            val filter : (elt -> bool) -> t -> t
            val partition : (elt -> bool) -> t -> t * t
            val cardinal : t -> int
            val elements : t -> elt list
            val min_elt : t -> elt
            val max_elt : t -> elt
            val choose : t -> elt
            val split : elt -> t -> t * bool * t
          end
        val of_vertex : G.t -> G.V.t -> Neighborhood.Graph.VertexSet.t
        val of_vertices :
          G.t ->
          Neighborhood.Graph.VertexSet.t -> Neighborhood.Graph.VertexSet.t
        val of_vertices_list :
          G.t ->
          Neighborhood.Graph.VertexSet.elt list ->
          Neighborhood.Graph.VertexSet.t
      end
end