sig
  type graph
  type node
  type tenv
  val init :
    Cil2cfg.WeiMaoZouChenInput.graph ->
    Cil2cfg.WeiMaoZouChenInput.tenv * Cil2cfg.WeiMaoZouChenInput.node
  val fold_succ :
    (Cil2cfg.WeiMaoZouChenInput.tenv ->
     Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv) ->
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
  val eq_nodes :
    Cil2cfg.WeiMaoZouChenInput.node ->
    Cil2cfg.WeiMaoZouChenInput.node -> bool
  val set_pos :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> int -> Cil2cfg.WeiMaoZouChenInput.tenv
  val reset_pos :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
  val get_pos :
    Cil2cfg.WeiMaoZouChenInput.tenv -> Cil2cfg.WeiMaoZouChenInput.node -> int
  val get_pos_if_traversed :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> int option
  val set_iloop_header :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
  val get_iloop_header :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.node option
  val add_loop_header :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
  val add_irreducible :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
  val add_reentry_edge :
    Cil2cfg.WeiMaoZouChenInput.tenv ->
    Cil2cfg.WeiMaoZouChenInput.node ->
    Cil2cfg.WeiMaoZouChenInput.node -> Cil2cfg.WeiMaoZouChenInput.tenv
end