sig
  type graph
  type vertex
  exception Edge_not_unique
  val create : unit -> Pxp_dfa.Graph.graph
  val new_vertex : Pxp_dfa.Graph.graph -> Pxp_dfa.Graph.vertex
  val new_edge :
    Pxp_dfa.Graph.vertex -> string -> Pxp_dfa.Graph.vertex -> unit
  val union : Pxp_dfa.Graph.graph -> Pxp_dfa.Graph.graph -> unit
  val outgoing_edges :
    Pxp_dfa.Graph.vertex -> (string * Pxp_dfa.Graph.vertex) list
  val follow_edge : Pxp_dfa.Graph.vertex -> string -> Pxp_dfa.Graph.vertex
  val ingoing_edges :
    Pxp_dfa.Graph.vertex -> (Pxp_dfa.Graph.vertex * string) list
end