sig
  type vertex
  type t
  val as_graph :
    CCGraph.MAP.t ->
    (CCGraph.MAP.vertex, CCGraph.MAP.vertex * CCGraph.MAP.vertex)
    CCGraph.graph
  val empty : CCGraph.MAP.t
  val add_edge :
    CCGraph.MAP.vertex ->
    CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
  val remove_edge :
    CCGraph.MAP.vertex ->
    CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
  val add : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
  val remove : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
  val union : CCGraph.MAP.t -> CCGraph.MAP.t -> CCGraph.MAP.t
  val vertices : CCGraph.MAP.t -> CCGraph.MAP.vertex CCGraph.sequence
  val vertices_l : CCGraph.MAP.t -> CCGraph.MAP.vertex list
  val of_list :
    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list -> CCGraph.MAP.t
  val add_list :
    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list ->
    CCGraph.MAP.t -> CCGraph.MAP.t
  val to_list :
    CCGraph.MAP.t -> (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list
  val of_seq :
    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
    CCGraph.MAP.t
  val add_seq :
    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
    CCGraph.MAP.t -> CCGraph.MAP.t
  val to_seq :
    CCGraph.MAP.t ->
    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence
end