sig
  type value =
      Int of int
    | Float of float
    | String of string
    | List of Gml.value_list
  and value_list = (string * Gml.value) list
  module Parse :
    functor
      (B : Builder.S) (L : sig
                             val node : Gml.value_list -> B.G.V.label
                             val edge : Gml.value_list -> B.G.E.label
                           end->
      sig val parse : string -> B.G.t end
  module type G =
    sig
      module V :
        sig
          type t
          val hash : Gml.G.V.t -> int
          val equal : Gml.G.V.t -> Gml.G.V.t -> bool
          type label
          val label : Gml.G.V.t -> Gml.G.V.label
        end
      module E :
        sig
          type t
          type label
          val src : Gml.G.E.t -> Gml.G.V.t
          val dst : Gml.G.E.t -> Gml.G.V.t
          val label : Gml.G.E.t -> Gml.G.E.label
        end
      type t
      val iter_vertex : (Gml.G.V.t -> unit) -> Gml.G.t -> unit
      val iter_edges_e : (Gml.G.E.t -> unit) -> Gml.G.t -> unit
    end
  module Print :
    functor
      (G : G) (L : sig
                     val node : Gml.G.V.label -> Gml.value_list
                     val edge : Gml.G.E.label -> Gml.value_list
                   end->
      sig val print : Format.formatter -> Gml.G.t -> unit end
end