functor (M : Map) (I : Info->
  sig
    type t = M.key
    val jtype : Package.jtype
    val of_json : json -> t
    val to_json : t -> json
    val get : t -> int
    val find : int -> t
    val clear : unit -> unit
  end