sig
  type graph = DGraphModel.DotG.t
  type vertex = DGraphModel.DotG.V.t
  type edge = DGraphModel.DotG.E.t
  module Tree :
    sig
      type t
      module V :
        sig
          type t
          val compare : t -> t -> int
          val hash : t -> int
          val equal : t -> t -> bool
          type label = vertex
          val create : label -> t
          val label : t -> label
        end
      type vertex = V.t
      module E :
        sig
          type t
          val compare : t -> t -> int
          type vertex = vertex
          val src : t -> vertex
          val dst : t -> vertex
          type label
          val create : vertex -> label -> vertex -> t
          val label : t -> label
        end
      type edge = E.t
      val is_directed : bool
      val is_empty : t -> bool
      val nb_vertex : t -> int
      val nb_edges : t -> int
      val out_degree : t -> vertex -> int
      val in_degree : t -> vertex -> int
      val mem_vertex : t -> vertex -> bool
      val mem_edge : t -> vertex -> vertex -> bool
      val mem_edge_e : t -> edge -> bool
      val find_edge : t -> vertex -> vertex -> edge
      val find_all_edges : t -> vertex -> vertex -> edge list
      val succ : t -> vertex -> vertex list
      val pred : t -> vertex -> vertex list
      val succ_e : t -> vertex -> edge list
      val pred_e : t -> vertex -> edge list
      val iter_vertex : (vertex -> unit) -> t -> unit
      val fold_vertex : (vertex -> '-> 'a) -> t -> '-> 'a
      val iter_edges : (vertex -> vertex -> unit) -> t -> unit
      val fold_edges : (vertex -> vertex -> '-> 'a) -> t -> '-> 'a
      val iter_edges_e : (edge -> unit) -> t -> unit
      val fold_edges_e : (edge -> '-> 'a) -> t -> '-> 'a
      val map_vertex : (vertex -> vertex) -> t -> t
      val iter_succ : (vertex -> unit) -> t -> vertex -> unit
      val iter_pred : (vertex -> unit) -> t -> vertex -> unit
      val fold_succ : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a
      val fold_pred : (vertex -> '-> 'a) -> t -> vertex -> '-> 'a
      val iter_succ_e : (edge -> unit) -> t -> vertex -> unit
      val fold_succ_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a
      val iter_pred_e : (edge -> unit) -> t -> vertex -> unit
      val fold_pred_e : (edge -> '-> 'a) -> t -> vertex -> '-> 'a
    end
  module GView :
    sig
      type vertex = vertex
      type edge = edge
      type cluster = cluster
      val view :
        ?aa:bool ->
        ?delay_node:(vertex -> bool) ->
        ?delay_edge:(edge -> bool) ->
        ?delay_cluster:(cluster -> bool) ->
        ?border_width:int ->
        ?width:int ->
        ?height:int ->
        ?packing:(GObj.widget -> unit) ->
        ?show:bool ->
        (vertex, edge, cluster) DGraphModel.abstract_model ->
        (vertex, edge, cluster) DGraphView.view
    end
  module TView :
    sig
      type vertex = Tree.V.t
      type edge = Tree.E.t
      type cluster = cluster
      val view :
        ?aa:bool ->
        ?delay_node:(vertex -> bool) ->
        ?delay_edge:(edge -> bool) ->
        ?delay_cluster:(cluster -> bool) ->
        ?border_width:int ->
        ?width:int ->
        ?height:int ->
        ?packing:(GObj.widget -> unit) ->
        ?show:bool ->
        (vertex, edge, cluster) DGraphModel.abstract_model ->
        (vertex, edge, cluster) DGraphView.view
    end
  type global_view = (vertex, edge, cluster) DGraphView.view
  type tree_view = (Tree.V.t, Tree.E.t, cluster) DGraphView.view
  class view_container :
    ?packing:(GObj.widget -> unit) ->
    ?status:status ->
    ?default_callbacks:bool ->
    mk_global_view:(unit -> global_view) ->
    mk_tree_view:(depth_backward:int ->
                  depth_forward:int ->
                  Gtk.widget Gtk.obj -> vertex -> tree_view) ->
    vertex option ->
    [vertex, edge, cluster, Tree.V.t, Tree.E.t, cluster] view_container_type
  val from_dot :
    ?packing:(GObj.widget -> unit) ->
    ?status:DGraphContainer.status ->
    ?default_callbacks:bool ->
    ?mk_global_view:((DGraphModel.DotG.V.t, DGraphModel.DotG.E.t,
                      DGraphModel.cluster)
                     DGraphModel.abstract_model -> global_view) ->
    ?mk_tree_view:((Tree.V.t, Tree.E.t, DGraphModel.cluster)
                   DGraphModel.abstract_model -> tree_view) ->
    string -> view_container
  val from_dot_with_commands :
    ?packing:(GObj.widget -> unit) ->
    ?status:DGraphContainer.status ->
    ?default_callbacks:bool ->
    ?mk_global_view:((DGraphModel.DotG.V.t, DGraphModel.DotG.E.t,
                      DGraphModel.cluster)
                     DGraphModel.abstract_model -> global_view) ->
    ?mk_tree_view:((Tree.V.t, Tree.E.t, DGraphModel.cluster)
                   DGraphModel.abstract_model -> tree_view) ->
    string -> GPack.table * view_container
end