sig
  val name : string
  val debug : bool
  type t = diff
  val copy : t -> t
  val pretty : Format.formatter -> t -> unit
  val computeFirstPredecessor : Cil_types.stmt -> t -> t
  val combinePredecessors : Cil_types.stmt -> old:t -> t -> t option
  val doInstr : Cil_types.stmt -> Cil_types.instr -> t -> t
  val doGuard :
    Cil_types.stmt ->
    Cil_types.exp -> t -> t Dataflow2.guardaction * t Dataflow2.guardaction
  val doStmt : Cil_types.stmt -> t -> t Dataflow2.stmtaction
  val doEdge : Cil_types.stmt -> Cil_types.stmt -> t -> t
  module StmtStartData :
    sig
      type data = t
      val clear : unit -> unit
      val mem : Cil_types.stmt -> bool
      val find : Cil_types.stmt -> data
      val replace : Cil_types.stmt -> data -> unit
      val add : Cil_types.stmt -> data -> unit
      val iter : (Cil_types.stmt -> data -> unit) -> unit
      val length : unit -> int
    end
end