functor
  (X : sig
         val version : string
         val kf : Cil_types.kernel_function
         val stmt_state : Cil_types.stmt -> Db.Value.state
         val at_call :
           Cil_types.stmt -> Cil_types.kernel_function -> Inout_type.t
       end->
  sig
    val name : string
    val debug : bool Pervasives.ref
    val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
    val non_terminating_callees_inputs : Locations.Zone.t Pervasives.ref
    val non_terminating_callees_outputs : 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
        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 : 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 doInstr :
      Cil_types.stmt ->
      Cil_types.instr ->
      Operational_inputs.Computer.t ->
      Operational_inputs.compute_t Dataflow.action
    val doStmt :
      Cil_types.stmt ->
      Operational_inputs.compute_t -> 'Dataflow.stmtaction
    val filterStmt : Cil_types.stmt -> bool
    val doGuard :
      Cil_types.stmt ->
      Cil_types.exp ->
      '-> 'Dataflow.guardaction * 'Dataflow.guardaction
    val doEdge : '-> '-> '-> 'c
    val init_dataflow : unit -> Cil_types.stmt
    val end_dataflow : unit -> Operational_inputs.tt
  end