functor (X : sig type t val size : int end->
  sig
    type data = X.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