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 pretty : Format.formatter -> State.t Inthash.t -> unit
      end
    type t = Datascope.ForwardScope.StmtStartData.data
    val pretty : Format.formatter -> Datascope.State.t -> unit
    val copy : Datascope.ForwardScope.t -> Datascope.ForwardScope.t
    val computeFirstPredecessor :
      '-> Datascope.State.t -> Datascope.State.t
    val combinePredecessors :
      '->
      old:Datascope.State.t -> Datascope.State.t -> Datascope.State.t option
    val doStmt : '-> '-> 'Dataflow.stmtaction
    val doInstr :
      Cil_types.stmt ->
      '-> Datascope.State.t -> Datascope.State.t Dataflow.action
    val stmt_can_reach : '-> '-> bool
    val filterStmt : '-> bool
    val doGuard : '-> '-> '-> 'Dataflow.guardaction
    val doEdge : '-> '-> '-> 'c
  end