sig
  type cfg
  type node
  module T : Transition
  type transition = CfgTypes.Cfg.node T.transition
  val nil : CfgTypes.Cfg.node
  val is_nil : CfgTypes.Cfg.node -> bool
  val create : unit -> CfgTypes.Cfg.cfg
  val node : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.node
  val size : CfgTypes.Cfg.cfg -> int
  val set :
    CfgTypes.Cfg.cfg -> CfgTypes.Cfg.node -> CfgTypes.Cfg.transition -> unit
  val add : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.transition -> CfgTypes.Cfg.node
  val next : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.node -> CfgTypes.Cfg.transition
  val succ : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.node -> CfgTypes.Cfg.node list
  val pred : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.node -> CfgTypes.Cfg.node list
  val iter_succ :
    CfgTypes.Cfg.cfg ->
    (CfgTypes.Cfg.node -> unit) -> CfgTypes.Cfg.node -> unit
  val iter_pred :
    CfgTypes.Cfg.cfg ->
    (CfgTypes.Cfg.node -> unit) -> CfgTypes.Cfg.node -> unit
  val iter :
    (CfgTypes.Cfg.node -> CfgTypes.Cfg.transition -> unit) ->
    CfgTypes.Cfg.cfg -> unit
  val id : CfgTypes.Cfg.node -> int
  val nid : int -> CfgTypes.Cfg.node
  type marks
  val marks : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.marks
  val once : CfgTypes.Cfg.marks -> CfgTypes.Cfg.node -> bool
  type dotter
  val pp_node :
    CfgTypes.Cfg.dotter ->
    CfgTypes.Cfg.node -> ('a, Format.formatter, unit) Pervasives.format -> 'a
  val pp_edge :
    CfgTypes.Cfg.dotter ->
    CfgTypes.Cfg.node ->
    CfgTypes.Cfg.node -> ('a, Format.formatter, unit) Pervasives.format -> 'a
  type pp_cfg =
      CfgTypes.Cfg.dotter ->
      CfgTypes.Cfg.node -> CfgTypes.Cfg.transition -> unit
  val dot : CfgTypes.Cfg.cfg -> CfgTypes.Cfg.pp_cfg -> string -> unit
end