sig
  type t
  val empty : Graph.t
  val of_graph6 : string -> Graph.t
  val make_clique : int -> Graph.t
  val num_vertices : Graph.t -> int
  val num_edges : Graph.t -> int
  val has_vertex : Graph.t -> int -> bool
  val vertices : Graph.t -> IntSet.t
  val is_connected : Graph.t -> int -> int -> bool
  val neighbors : Graph.t -> int -> IntSet.t
  val is_deg0 : Graph.t -> int -> bool
  val deg : Graph.t -> int -> int
  val is_clique : Graph.t -> bool
  val choose_edge : Graph.t -> int * int
  val add_vertex : Graph.t -> int -> Graph.t
  val new_vertex : Graph.t -> int
  val connect : Graph.t -> int -> int -> Graph.t
  val disconnect : Graph.t -> int -> int -> Graph.t
  val delete_vertex : Graph.t -> int -> Graph.t
  val subgraph : Graph.t -> IntSet.t -> Graph.t
  val clear_subgraph : Graph.t -> IntSet.t -> Graph.t
  val complete_subgraph : Graph.t -> IntSet.t -> Graph.t
  val num_edges_in_subgraph : Graph.t -> IntSet.t -> int
  val fold_vertices : ('-> int -> IntSet.t -> 'a) -> Graph.t -> '-> 'a
  val fold_neighbors : ('-> int -> 'a) -> Graph.t -> int -> '-> 'a
  val fold_edges : ('-> int -> int -> 'a) -> Graph.t -> '-> 'a
  val fold_subgraph_edges :
    ('-> int -> int -> 'a) -> Graph.t -> IntSet.t -> '-> 'a
  val iter_edges : (int -> int -> unit) -> Graph.t -> unit
  val complement : Graph.t -> Graph.t
  val output : Pervasives.out_channel -> Graph.t -> unit
  val print : Graph.t -> unit
  val dump : Graph.t -> unit
end