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 = Context.compute_t
    val pretty : Format.formatter -> Context.compute_t -> unit
    module StmtStartData :
      sig
        type data = compute_t
        val clear : unit -> unit
        val mem : int -> bool
        val find : int -> data
        val replace : int -> data -> unit
        val add : int -> data -> unit
        val iter : (int -> data -> unit) -> unit
        val length : unit -> int
      end
    val display_one : Format.formatter -> int -> Db.InOutContext.t -> unit
    val display : Format.formatter -> Db.InOutContext.t Inthash.t -> unit
    val copy : Context.Computer.t -> Context.Computer.t
    val computeFirstPredecessor :
      Cil_types.stmt -> Context.compute_t -> Context.compute_t
    val combinePredecessors :
      Cil_types.stmt ->
      old:Context.compute_t -> Context.compute_t -> Context.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.instr ->
      Context.Computer.t -> Context.compute_t Dataflow.action
    val doStmt :
      Cil_types.stmt -> Context.Computer.t -> 'Dataflow.stmtaction
    val filterStmt : Cil_types.stmt -> bool
    val doGuard :
      Cil_types.stmt ->
      '-> '-> 'Dataflow.guardaction * 'Dataflow.guardaction
    val doEdge : '-> '-> '-> 'c
  end