functor (X : sig type t val size : int end->
  sig
    type data = X.t
    val clear : unit -> unit
    val mem : Cil_types.stmt -> bool
    val find : Cil_types.stmt -> data
    val replace : Cil_types.stmt -> data -> unit
    val add : Cil_types.stmt -> data -> unit
    val iter : (Cil_types.stmt -> data -> unit) -> unit
    val length : unit -> int
  end