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