sig
  type t = Reason_graph.Reason.Set.t
  module V :
    sig
      type t = PdgTypes.Node.t
      val pretty : Format.formatter -> PdgTypes.Node.t -> unit
    end
  module E :
    sig
      type t =
          Reason_graph.Printer.V.t * Reason_graph.Printer.V.t *
          Reason_graph.reason_type
      val src : 'a * 'b * '-> 'a
      val dst : 'a * 'b * '-> 'b
    end
  val iter_vertex :
    (Reason_graph.NS.elt -> unit) -> Reason_graph.Reason.Set.t -> unit
  val iter_edges_e :
    (Reason_graph.Reason.Set.elt -> unit) ->
    Reason_graph.Reason.Set.t -> unit
  val vertex_name : PdgTypes.Node.t -> string
  val graph_attributes : '-> [> `Label of string ] list
  val default_vertex_attributes : '-> [> `Style of [> `Filled ] ] list
  val default_edge_attributes : '-> 'b list
  val vertex_attributes : PdgTypes.Node.t -> [> `Label of string ] list
  val edge_attributes :
    'a * 'b * Reason_graph.reason_type ->
    [> `Color of int | `Label of string ] list
  val get_subgraph :
    PdgTypes.Node.t -> Graph.Graphviz.DotAttributes.subgraph option
end