sig
  module Tree : Graph.Graphviz.GraphWithDotAttrs
  module TreeManipulation :
    sig
      type t
      val get_structure : DGraphTreeModel.S.TreeManipulation.t -> Tree.t
      val get_tree_vertices :
        Tree.V.label -> DGraphTreeModel.S.TreeManipulation.t -> Tree.V.t list
      val get_graph_vertex :
        Tree.V.t -> DGraphTreeModel.S.TreeManipulation.t -> Tree.V.label
      val is_ghost_node :
        Tree.V.t -> DGraphTreeModel.S.TreeManipulation.t -> bool
      val is_ghost_edge :
        Tree.E.t -> DGraphTreeModel.S.TreeManipulation.t -> bool
    end
  type cluster = string
  type graph_layout
  class tree_model :
    DGraphTreeModel.S.graph_layout ->
    DGraphTreeModel.S.TreeManipulation.t ->
    [Tree.V.t, Tree.E.t, DGraphTreeModel.S.cluster]
    DGraphModel.abstract_model
  val tree : unit -> DGraphTreeModel.S.TreeManipulation.t
end