functor
  (S : sig type t val pretty : Format.formatter -> Datascope.t -> unit end->
  sig
    type key = Cil_types.stmt
    type data = S.t
    type t = Datascope.GenStates.data Cil_datatype.Stmt.Hashtbl.t
    val states : Datascope.GenStates.t
    val clear : unit -> unit
    val mem : Cil_datatype.Stmt.Hashtbl.key -> bool
    val find : Cil_datatype.Stmt.Hashtbl.key -> Datascope.GenStates.data
    val replace :
      Cil_datatype.Stmt.Hashtbl.key -> Datascope.GenStates.data -> unit
    val add :
      Cil_datatype.Stmt.Hashtbl.key -> Datascope.GenStates.data -> unit
    val iter :
      (Cil_datatype.Stmt.Hashtbl.key -> Datascope.GenStates.data -> unit) ->
      unit
    val fold :
      (Cil_datatype.Stmt.Hashtbl.key -> Datascope.GenStates.data -> '-> 'a) ->
      '-> 'a
    val length : unit -> int
    val pretty : Format.formatter -> S.t Cil_datatype.Stmt.Hashtbl.t -> unit
  end