functor (T : Typeable.Typeable->
  functor (E : sig type a = T.a val eq : a -> a -> bool end->
    sig
      val allocate : T.a -> (Pickle.id -> unit m) -> Pickle.id m
      val store_repr : Pickle.id -> Pickle.Repr.t -> unit m
    end