functor (X : sig val modified : Cil_types.stmt -> bool end->
  sig
    val name : string
    val debug : bool Pervasives.ref
    module StmtStartData :
      sig
        type data = State.t
        type t = data Inthash.t
        val states : t
        val clear : unit -> unit
        val add : int -> data -> unit
        val find : int -> data
        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 fold : (int -> data -> '-> 'a) -> '-> 'a
        val length : unit -> int
        val pretty : Format.formatter -> State.t Inthash.t -> unit
      end
    type t = Datascope.BackwardScope.StmtStartData.data
    val pretty : Format.formatter -> Datascope.State.t -> unit
    val combineStmtStartData :
      '->
      old:Datascope.State.t -> Datascope.State.t -> Datascope.State.t option
    val combineSuccessors :
      Datascope.State.t -> Datascope.State.t -> Datascope.State.t
    val doStmt : '-> 'Dataflow.action
    val doInstr :
      Cil_types.stmt ->
      '-> Datascope.State.t -> Datascope.State.t Dataflow.action
    val filterStmt : '-> '-> bool
    val funcExitData : Datascope.State.t
  end