Use my optimized Set and Map implementations within HashSet and HashMap, respectively, instead of the Set and Map implementations from FSharp.Core. These new implementations provide slightly better overall performance, but greatly improve performance for certain use cases via better structure-sharing.
These modifications pass most of the tests for HashSet and HashMap; the few that don't pass appear to be related to non-generic equality or comparison methods.
Fixed equality, comparison, and hashing functions for HashSet and HashMap so they work correctly again after the recent modifications to use the optimized MapTree and SetTree implementations.