Marc:
The tables implementation has special hash functions for these common tests:
eq?, eqv?, equal?, string=?, string-ci=?
The table access routines and the special has functions are defined in _system.scm.
The tests themselves are defined in the following:
_system.scm: eqv?, eq?, equal? _std.scm: string=?, string-ci=?
So tables that use string=? for a hash function have to do two extra intermodule calls per table lookup; that may be why string=? tables are currently noticeably slower than eq? tables.
Brad