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 : From_register.Make.t'
    val name : string
    val debug : bool Pervasives.ref
    val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
    type t = From_register.Make.t'
    module StmtStartData :
      sig
        type data = 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 callwise_states_with_formals :
      (Kernel_function.t * Lmap_bitwise.From_Model.t) list
      Cil_datatype.Stmt.Hashtbl.t
    type 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 -> Locations.Zone.t -> Locations.Zone.t
    val display_one_from : Format.formatter -> From_register.Make.t' -> unit
    val display_one_from_stmt :
      Format.formatter -> Cil_types.stmt -> From_register.Make.t' -> unit
    val display_from : Format.formatter -> unit
    val copy : From_register.Make.Computer.t -> From_register.Make.Computer.t
    val pretty : Format.formatter -> From_register.Make.Computer.t -> unit
    val eliminate_additional :
      Locations.Zone.t Cil_datatype.Stmt.Map.t ->
      Cil_types.stmt ->
      Locations.Zone.t * Locations.Zone.t Cil_datatype.Stmt.Map.t * int
    val computeFirstPredecessor :
      Cil_datatype.Stmt.Map.key ->
      From_register.Make.t' -> From_register.Make.t'
    val combinePredecessors :
      Cil_datatype.Stmt.Map.key ->
      old:From_register.Make.t' ->
      From_register.Make.t' -> From_register.Make.t' option
    val resolv_func_vinfo :
      ?deps:Locations.Zone.t ->
      Cil_types.stmt ->
      Cil_types.exp ->
      with_alarms:CilE.warn_mode ->
      Locations.Zone.t * Kernel_function.Hptset.t
    exception Ignore
    val doInstr :
      Cil_datatype.Stmt.Hashtbl.key ->
      Cil_types.instr ->
      From_register.Make.Computer.t -> From_register.Make.t' Dataflow.action
    val doStmt :
      Cil_types.stmt ->
      From_register.Make.Computer.t -> 'Dataflow.stmtaction
    val filterStmt : Cil_types.stmt -> bool
    val externalize :
      Cil_types.stmt ->
      Cil_types.kernel_function -> From_register.Make.t' -> Function_Froms.tt
    val doGuard :
      Cil_types.stmt ->
      Cil_types.exp ->
      '-> 'Dataflow.guardaction * 'Dataflow.guardaction
    val doEdge :
      Cil_types.stmt ->
      Cil_types.stmt -> From_register.Make.t' -> From_register.Make.t'
  end