On Thu, Oct 8, 2015 at 4:55 PM, Taylan Ulrich Bayırlı/Kammer <xxxxxx@gmail.com> wrote:
Alex Shinn <xxxxxx@gmail.com> writes:

> This is a clear example of piling feature on top of feature,
> in a way that creates more work for everybody.

Users will only ever do:

    (make-hash-table equal-hash equal?)

and an implementation that needs a pair of equal-hash functions will use
its default pair of equal-hash functions in this case.

You're making custom hash functions second class.
They require more work and are used differently from
the default hash functions.

However, it puts a nontrivial burden on implementors, which is to
restructure their hash table code to manage salting in the new way, by
having a salt passed to hash functions everywhere.

The lazy implementor can simply say:

  (define (equal-hash obj seed bound) (r6rs-equal-hash obj))

-- 
Alex