John Cowan (on a private e-mail, probably by mistake) answered me that the beginning of the Specification says "It is an error to pass two hash tables that have different comparators or equality predicates to any of the procedures of this SRFI."
But there are many test cases of `hash-table-union!` and `hash-table-difference!` calling these procedures with hash tables with different equality predicates.
Shouldn't standard implementation type-check the hash-tables to make sure their equality predicates are `eq?`? I know the `hash-table-equivalence-function` is deprecated, but `hashtable-equivalence-function` in R6RS is not and all implementations must keep this information somewhere anyway to conform with the specification. Also, the test cases must be fixed as well to only call these procedures with hash tables that have the same equality predicates.
Regards,
Jéssica