functor (O : Map.OrderedType->
  sig
    type vertex = O.t
    type 'a t
    val as_graph : 'a t -> (vertex, 'a) graph
    val empty : 'a t
    val add_edge : vertex -> '-> vertex -> 'a t -> 'a t
    val remove_edge : vertex -> vertex -> 'a t -> 'a t
    val add : vertex -> 'a t -> 'a t
    val remove : vertex -> 'a t -> 'a t
    val union : 'a t -> 'a t -> 'a t
    val vertices : 'a t -> vertex sequence
    val vertices_l : 'a t -> vertex list
    val of_list : (vertex * 'a * vertex) list -> 'a t
    val add_list : (vertex * 'a * vertex) list -> 'a t -> 'a t
    val to_list : 'a t -> (vertex * 'a * vertex) list
    val of_seq : (vertex * 'a * vertex) sequence -> 'a t
    val add_seq : (vertex * 'a * vertex) sequence -> 'a t -> 'a t
    val to_seq : 'a t -> (vertex * 'a * vertex) sequence
  end