functor
  (X : sig
         type t
         module V : sig type t end
         module E :
           sig
             type t
             val src : Graphviz.Neato.E.t -> Graphviz.Neato.V.t
             val dst : Graphviz.Neato.E.t -> Graphviz.Neato.V.t
           end
         val iter_vertex :
           (Graphviz.Neato.V.t -> unit) -> Graphviz.Neato.t -> unit
         val iter_edges_e :
           (Graphviz.Neato.E.t -> unit) -> Graphviz.Neato.t -> unit
         val graph_attributes :
           Graphviz.Neato.t -> Graphviz.NeatoAttributes.graph list
         val default_vertex_attributes :
           Graphviz.Neato.t -> Graphviz.NeatoAttributes.vertex list
         val vertex_name : Graphviz.Neato.V.t -> string
         val vertex_attributes :
           Graphviz.Neato.V.t -> Graphviz.NeatoAttributes.vertex list
         val get_subgraph :
           Graphviz.Neato.V.t -> Graphviz.NeatoAttributes.subgraph option
         val default_edge_attributes :
           Graphviz.Neato.t -> Graphviz.NeatoAttributes.edge list
         val edge_attributes :
           Graphviz.Neato.E.t -> Graphviz.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