functor
  (G : sig
         module V :
           sig
             type t
             val hash : Gml.Print.V.t -> int
             val equal : Gml.Print.V.t -> Gml.Print.V.t -> bool
             type label
             val label : Gml.Print.V.t -> Gml.Print.V.label
           end
         module E :
           sig
             type t
             type label
             val src : Gml.Print.E.t -> Gml.Print.V.t
             val dst : Gml.Print.E.t -> Gml.Print.V.t
             val label : Gml.Print.E.t -> Gml.Print.E.label
           end
         type t
         val iter_vertex : (Gml.Print.V.t -> unit) -> Gml.Print.t -> unit
         val iter_edges_e : (Gml.Print.E.t -> unit) -> Gml.Print.t -> unit
       end->
  functor
    (L : sig
           val node : G.V.label -> Gml.value_list
           val edge : G.E.label -> Gml.value_list
         end->
    sig val print : Format.formatter -> G.t -> unit end