This saves doing lookups when inserting new regular expressions, since we only ever insert and not update (by definition of hash-consing), and the CL hash tables can only upsert. It also provides a custom hash function for tag sets, because the hash function in SBCL behaves poorly and generates very few hashes - about 13 for 50k hashes in one case found by Regrind, leading to terrible performance.
This saves doing lookups when inserting new regular expressions, since we only ever insert and not update (by definition of hash-consing), and the CL hash tables can only upsert. It also provides a custom hash function for tag sets, because the hash function in SBCL behaves poorly and generates very few hashes - about 13 for 50k hashes in one case found by Regrind, leading to terrible performance.