functor
  (Param : sig val states : CtrlDpds.States.t val end_point : int end->
  sig
    val name : string
    val debug : bool Pervasives.ref
    type t = CtrlDpds.State.t
    val pretty : Format.formatter -> CtrlDpds.t_info -> unit
    module StmtStartData :
      sig
        type data = CtrlDpds.Computer.t
        val clear : unit -> unit
        val mem : int -> bool
        val find : int -> CtrlDpds.State.t
        val replace : int -> CtrlDpds.State.t -> unit
        val add : int -> CtrlDpds.State.t -> unit
        val iter : (int -> CtrlDpds.State.t -> unit) -> unit
        val length : unit -> int
      end
    val combineStmtStartData :
      '-> old:CtrlDpds.t_info -> CtrlDpds.t_info -> CtrlDpds.t_info option
    val combineSuccessors :
      CtrlDpds.t_info -> CtrlDpds.t_info -> CtrlDpds.t_info
    val doStmt : Cilutil.StmtSet.elt -> CtrlDpds.t_info Dataflow.action
    val doInstr : '-> '-> '-> 'Dataflow.action
    val filterStmt : '-> '-> bool
    val funcExitData : CtrlDpds.t_info
  end