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->
      functor
        (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