functor (I : Init->
  sig
    val name : string
    val debug : bool Pervasives.ref
    type data = Data_for_aorai.state * Cil_datatype.Stmt.Set.t
    type t = Aorai_dataflow.Computer.data
    val copy : '-> 'a
    val pretty : Format.formatter -> Data_for_aorai.state * '-> unit
    val computeFirstPredecessor :
      Cil_datatype.Stmt.Set.elt ->
      Data_for_aorai.state * Cil_datatype.Stmt.Set.t ->
      Data_for_aorai.state * Cil_datatype.Stmt.Set.t
    val combinePredecessors :
      Cil_datatype.Stmt.Set.elt ->
      old:Data_for_aorai.state * '->
      Data_for_aorai.state * Cil_datatype.Stmt.Set.t ->
      (Data_for_aorai.state * Cil_datatype.Stmt.Set.t) option
    val doInstr :
      Aorai_dataflow.Call_state.key ->
      Cil_types.instr ->
      Data_for_aorai.state * '->
      ((Data_for_aorai.Aorai_state.Set.t * Data_for_aorai.Aorai_state.Set.t *
        Data_for_aorai.Vals.t)
       Data_for_aorai.Aorai_state.Map.t Data_for_aorai.Aorai_state.Map.t * 'a)
      Dataflow.action
    val doGuard :
      '-> '-> '-> 'Dataflow.guardaction * 'Dataflow.guardaction
    val doStmt :
      '->
      'Data_for_aorai.Aorai_state.Map.t * '-> 'Dataflow.stmtaction
    val filterStmt : '-> bool
    val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
    val doEdge : '-> '-> '-> 'c
    module StmtStartData :
      sig
        type data = data
        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