Nice! Thanks for this Zach!
I also have an immutable bitset for integers based on BigInteger, should
anyone need backwards compatibility with older jvms. However, you look to
have put significantly more time into optimization than I did. My
implementation does have a few extra functions (shifts
https://github.com/ztellman/immutable-bitset
There's not much to describe here, this provides an implementation of an
integer-only set which can take up three orders of magnitude less memory
under certain conditions. I needed this to implement a Bloom filter, but I
figured it had applications