sig
  val name : string
  val debug : bool
  type t = Cil_types.exp Availexpslv.LvExpHash.t
  module StmtStartData :
    sig
      type data = Cil_types.exp LvExpHash.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
  val copy : 'a Availexpslv.LvExpHash.t -> 'a Availexpslv.LvExpHash.t
  val pretty :
    Format.formatter -> Cil_types.exp Availexpslv.LvExpHash.t -> unit
  val computeFirstPredecessor : 'a -> 'b -> 'b
  val combinePredecessors :
    Cil_types.stmt ->
    old:Availexpslv.AvailableExps.t ->
    Availexpslv.AvailableExps.t ->
    Cil_types.exp Availexpslv.LvExpHash.t option
  val doInstr :
    'a ->
    Cil_types.instr ->
    Cil_types.exp Availexpslv.LvExpHash.t ->
    Cil_types.exp Availexpslv.LvExpHash.t
  val doStmt : 'a -> 'b -> 'c Dataflow2.stmtaction
  val doGuard :
    'a -> 'b -> 'c -> 'd Dataflow2.guardaction * 'e Dataflow2.guardaction
  val doEdge : 'a -> 'b -> 'c -> 'c
end