functor
  (X : sig
         type t
         module V : sig type t end
         module E : sig type t val src : t -> V.t val dst : t -> V.t end
         val iter_vertex : (V.t -> unit) -> t -> unit
         val iter_edges_e : (E.t -> unit) -> t -> unit
         val graph_attributes : t -> NeatoAttributes.graph list
         val default_vertex_attributes : t -> NeatoAttributes.vertex list
         val vertex_name : V.t -> string
         val vertex_attributes : V.t -> NeatoAttributes.vertex list
         val default_edge_attributes : t -> NeatoAttributes.edge list
         val edge_attributes : E.t -> NeatoAttributes.edge list
       end->
  sig
    val set_command : string -> unit
    exception Error of string
    val handle_error : ('-> 'b) -> '-> 'b
    val fprint_graph : Format.formatter -> X.t -> unit
    val output_graph : Pervasives.out_channel -> X.t -> unit
  end