sig
  type t
  module V :
    sig
      type t
      type label
      val create : DGraphSubTree.Tree.V.label -> DGraphSubTree.Tree.V.t
      val label : DGraphSubTree.Tree.V.t -> DGraphSubTree.Tree.V.label
      val hash : DGraphSubTree.Tree.V.t -> int
      val equal : DGraphSubTree.Tree.V.t -> DGraphSubTree.Tree.V.t -> bool
    end
  module E :
    sig
      type t
      val compare : t -> t -> int
      type vertex = V.t
      val src : t -> vertex
      val dst : t -> vertex
      type label
      val create : vertex -> label -> vertex -> t
      val label : t -> label
    end
  val create : ?size:int -> unit -> DGraphSubTree.Tree.t
  val add_vertex : DGraphSubTree.Tree.t -> DGraphSubTree.Tree.V.t -> unit
  val add_edge_e : DGraphSubTree.Tree.t -> DGraphSubTree.Tree.E.t -> unit
end