Patch clj-1204-make-hash-consistent-with-equal-for-bigintegers-v1.txt dated Apr 18 2013 takes the following approach to the issue:
Change the behavior of hasheq so that when given a BigInteger value that could fit into a long, returns the same hash code as that long value.
hasheq continues to return x.hashCode() if the BigInteger value does not fit into a long. This is consistent with the hash value returned by a BigInt value that does not fit into a long.
New tests are included, some of which fail without the change to hasheq, but pass with the change.