sig
  type t = PdgTypes.Pdg.t
  module V : sig type t = PdgTypes.Node.t end
  module E :
    sig
      type t = Print.G.E.t * bool
      val src : Print.G.E.t * '-> PdgTypes.Node.t
      val dst : Print.G.E.t * '-> PdgTypes.Node.t
    end
  val iter_vertex :
    (PdgTypes.Node.t -> unit) -> PdgTypes.InternalPdg.t -> unit
  val iter_edges_e :
    (Print.G.edge * bool -> unit) -> PdgTypes.InternalPdg.t -> unit
  val graph_attributes : '-> [> `Rankdir of [> `TopToBottom ] ] list
  val default_vertex_attributes : '-> [> `Style of [> `Filled ] ] list
  val vertex_name : Print.N.t -> string
  val vertex_attributes :
    Print.N.t ->
    [> `Fillcolor of int
     | `Label of string
     | `Shape of [> `Box | `Diamond | `Doublecircle ] ]
    list
  val default_edge_attributes : '-> 'b list
  val edge_attributes :
    Print.G.edge * bool ->
    [> `Arrowhead of [> `Odot ]
     | `Color of int
     | `Label of string
     | `Style of [> `Dotted ] ]
    list
  val get_subgraph :
    Print.N.t -> Graph.Graphviz.DotAttributes.subgraph option
end