functor (G : Graph.Graphviz.GraphWithDotAttrs->
  sig
    type cluster = string
    exception Multiple_layouts of (G.E.t * XDot.edge_layout) list
    class model :
      XDot.Make(G).graph_layout ->
      G.t -> [G.V.t, G.E.t, DGraphModel.Make.cluster] abstract_model
    val from_graph :
      ?cmd:string -> ?tmp_name:string -> G.t -> DGraphModel.Make.model
  end