functor
  (REACH : sig
             val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
           end->
  sig
    val name : string
    val debug : bool Pervasives.ref
    val current_stmt : Cil_types.kinstr Pervasives.ref
    val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
    val non_terminating_callees_inputs : Locations.Zone.t Pervasives.ref
    type t = Operational_inputs.compute_t
    val pretty : Format.formatter -> Operational_inputs.compute_t -> unit
    module StmtStartData :
      sig
        type data = compute_t
        type key = Cil_types.stmt
        val clear : unit -> unit
        val mem : key -> bool
        val find : key -> data
        val replace : key -> data -> unit
        val add : key -> data -> unit
        val iter : (key -> data -> unit) -> unit
        val length : unit -> int
      end
    val display_one :
      Format.formatter -> int -> Db.Operational_inputs.t -> unit
    val display :
      Format.formatter -> Db.Operational_inputs.t Inthash.t -> unit
    val copy : Operational_inputs.Computer.t -> Operational_inputs.Computer.t
    val computeFirstPredecessor :
      Cil_types.stmt ->
      Operational_inputs.compute_t -> Operational_inputs.compute_t
    val combinePredecessors :
      Cil_types.stmt ->
      old:Operational_inputs.compute_t ->
      Operational_inputs.compute_t -> Operational_inputs.compute_t option
    val resolv_func_vinfo :
      ?deps:Locations.Zone.t ->
      Cil_types.kinstr ->
      Cil_types.exp ->
      with_alarms:CilE.warn_mode ->
      Locations.Zone.t * Kernel_function.Hptset.t
    val doInstr :
      Cil_types.stmt ->
      Cil_types.instr ->
      Operational_inputs.Computer.t ->
      Operational_inputs.compute_t Dataflow.action
    val doStmt :
      Cil_types.stmt ->
      Operational_inputs.Computer.t -> 'Dataflow.stmtaction
    val filterStmt : Cil_types.stmt -> bool
    val doGuard :
      Cil_types.stmt ->
      '-> '-> 'Dataflow.guardaction * 'Dataflow.guardaction
    val doEdge : '-> '-> '-> 'c
  end