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