functor (PE : sig val edge_txt : Cil2cfg.edge -> string end->
  sig
    type t = Cil2cfg.CFG.t * (Cil2cfg.edge -> string)
    module V = CFG.V
    module E = CFG.E
    val iter_edges_e :
      (Cil2cfg.CFG.edge -> unit) -> Cil2cfg.CFG.t * '-> unit
    val iter_vertex :
      (Cil2cfg.CFG.vertex -> unit) -> Cil2cfg.CFG.t * '-> unit
    val graph_attributes : '-> 'b list
    val pretty_raw_stmt : Cil_types.stmt -> string
    val vertex_name : Cil2cfg.node_info -> string
    val vertex_attributes :
      V.t ->
      [> `Color of int
       | `Label of string
       | `Shape of [> `Box | `Diamond | `Doublecircle ]
       | `Style of [> `Filled ] ]
      list
    val default_vertex_attributes : '-> 'b list
    val edge_attributes :
      Cil2cfg.edge ->
      [> `Color of int
       | `Constraint of bool
       | `Label of string
       | `Style of [> `Bold | `Dashed | `Dotted ] ]
      list
    val default_edge_attributes : '-> 'b list
    val get_subgraph : V.t -> Graph.Graphviz.DotAttributes.subgraph option
  end