sig
  module type G =
    sig
      type t
      type vertex
      module E :
        sig
          type t
          val src : Graphml.G.E.t -> Graphml.G.vertex
          val dst : Graphml.G.E.t -> Graphml.G.vertex
        end
      val is_directed : bool
      val iter_vertex : (Graphml.G.vertex -> unit) -> Graphml.G.t -> unit
      val iter_edges_e : (Graphml.G.E.t -> unit) -> Graphml.G.t -> unit
    end
  module Print :
    functor
      (G : G) (L : sig
                     val vertex_properties :
                       (string * string * string option) list
                     val edge_properties :
                       (string * string * string option) list
                     val map_vertex :
                       Graphml.G.vertex -> (string * string) list
                     val map_edge : Graphml.G.E.t -> (string * string) list
                     val vertex_uid : Graphml.G.vertex -> int
                     val edge_uid : Graphml.G.E.t -> int
                   end->
      sig val print : Format.formatter -> Graphml.G.t -> unit end
end