sig
  module E :
    sig
      type key = Cil_types.kernel_function
      type data = int
      val name : string
      val compare : key -> key -> int
      val pretty : Format.formatter -> key -> unit
    end
  type key = E.key
  type data = E.data
  val mem : key -> bool
  val find : key -> data
  val get : key -> data option
  val define : key -> data -> unit
  val update : key -> data -> unit
  val memoize : (key -> data) -> key -> data
  val compile : (key -> data) -> key -> unit
  val callback : (key -> data -> unit) -> unit
  val iter : (key -> data -> unit) -> unit
  val iter_sorted : (key -> data -> unit) -> unit
end