sig
  type parent_t = t
  type t = PdgTypes.Pdg.Printer.parent_t
  module V = Node
  module E :
    sig
      type t = PdgTypes.G.E.t * bool
      val src : ('a * 'b * 'c) * '-> 'c
      val dst : ('a * 'b * 'c) * '-> 'a
    end
  val print_node : PdgTypes.Node.t -> bool
  val iter_vertex :
    (PdgTypes.Node.Hashtbl.key -> unit) -> 'a * PdgTypes.Pdg.body -> unit
  val iter_edges_e :
    ((PdgTypes.Node.Hashtbl.key * PdgTypes.DpdZone.t *
      PdgTypes.Node.Hashtbl.key) *
     bool -> unit) ->
    'a * PdgTypes.Pdg.body -> unit
  val graph_attributes : '-> [> `Rankdir of [> `TopToBottom ] ] list
  val default_vertex_attributes : '-> [> `Style of [> `Filled ] ] list
  val vertex_name : PdgTypes.Node.t -> string
  val vertex_attributes :
    PdgTypes.Node.t ->
    [> `Fillcolor of int
     | `Label of string
     | `Shape of [> `Box | `Diamond | `Doublecircle ] ]
    list
  val default_edge_attributes : '-> [> `Dir of [> `Back ] ] list
  val edge_attributes :
    ('a * PdgTypes.DpdZone.t * 'b) * bool ->
    [> `Arrowtail of [> `Odot ]
     | `Color of int
     | `Label of string
     | `Style of [> `Dotted ] ]
    list
  val get_subgraph :
    PdgTypes.Node.t -> Graph.Graphviz.DotAttributes.subgraph option
end