sig
  type t' =
    Make(Db.Value)(Functionwise_From_to_use)(Recording_To_Do).t' = {
    additional_deps_table : Locations.Zone.t Cilutil.StmtMap.t;
    additional_deps : Locations.Zone.t;
    deps_table : Lmap_bitwise.From_Model.t;
  }
  val call_stack : Kernel_function.t Cilutil.Stack.t
  val find_deps_no_transitivity :
    Cil_types.kinstr -> Cil_types.exp -> Locations.Zone.t
  val find_deps_offset_no_transitivity :
    Cil_types.kinstr -> Cil_types.offset -> Locations.Zone.t
  val find_deps_lval_no_transitivity :
    Cil_types.kinstr -> Cil_types.lval -> Locations.Zone.t
  val find_deps :
    Cil_types.kinstr ->
    Db_types.from_model -> Cil_types.exp -> Locations.Zone.t
  module Computer :
    functor
      (REACH : sig
                 val stmt_can_reach :
                   Cil_types.stmt -> Cil_types.stmt -> bool
                 val blocks_closed_by_edge :
                   Cil_types.stmt -> Cil_types.stmt -> Cil_types.block list
               end->
      sig
        val empty_from : t'
        val name : string
        val debug : bool ref
        val current_stmt : Cil_types.kinstr ref
        val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
        type t = t'
        module StmtStartData :
          sig
            type data = 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
        type substit =
          Make(Db.Value)(Functionwise_From_to_use)(Recording_To_Do).Computer(REACH).substit =
            Froms of Locations.Zone.t
          | Lvalue of Lmap_bitwise.From_Model.LOffset.t
        val cached_substitute :
          Lmap_bitwise.From_Model.t ->
          Locations.Zone.t ->
          substit Cilutil.VarinfoHashtbl.t ->
          Locations.Zone.t -> Locations.Zone.t
        val display_one_from : Format.formatter -> int -> t' -> unit
        val display_from : Format.formatter -> unit
        val copy : t -> t
        val pretty : Format.formatter -> t -> unit
        val eliminate_additional :
          Locations.Zone.t Cilutil.StmtMap.t ->
          Cil_types.stmt ->
          Locations.Zone.t * Locations.Zone.t Cilutil.StmtMap.t * int
        val computeFirstPredecessor : Cilutil.StmtMap.key -> t' -> t'
        val combinePredecessors :
          Cilutil.StmtMap.key -> old:t' -> t' -> 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.Set.t
        exception Ignore
        val doInstr : '-> Cil_types.instr -> t -> t' Dataflow.action
        val doStmt : Cil_types.stmt -> t -> 'Dataflow.stmtaction
        val filterStmt : Cil_types.stmt -> bool
        val externalize :
          Cil_types.stmt -> Cil_types.fundec -> t' -> Function_Froms.t
        val doGuard :
          Cil_types.stmt -> Cil_types.exp -> '-> 'Dataflow.guardaction
        val doEdge : Cil_types.stmt -> Cil_types.stmt -> t' -> t'
      end
  val compute_using_cfg : Kernel_function.t -> Function_Froms.t
  val compute_using_prototype_for_state :
    Db.Value.state -> Kernel_function.t -> Function_Froms.t
  val compute_using_prototype : Kernel_function.t -> Function_Froms.t
  val compute_and_return : Kernel_function.t -> Function_Froms.t
  val compute : Kernel_function.t -> unit
end