eq?/eqv? hash tables with rehashing on gc,
as in larceny, may be doing more work than
is needed for some common eq?/eqv? cases.
If the keys are only symbols, it would be
reasonable to store a hash value directly in
the symbol object, or even arrange for all
symbols to be stationary in the gc. To allow
such optimizations, I think we should add:
make-symbol-hash-table
(which may just be the same as an eq table.)
Similarly, a possibly rehashing eqv table is
overkill for characters and numbers when we
can just construct normal comparison-based
hash tables using:
char-hashnumber-hash
One could also consider char-ci-hash, though
case comparisons on single chars may be
indicative of poor design.
--
Alex