Define a new hash table test with name NAME, a symbol.
In hash tables created with NAME specified as test, use TEST to
compare keys, and HASH for computing hash codes of keys.
TEST must be a function taking two arguments and returning non-nil if
both arguments are the same. HASH must be a function taking one
argument and return an integer that is the hash code of the argument.
Hash code computation should use the whole value range of integers,
including negative integers. (fn NAME TEST HASH)