@johnynek I was going through your talk [here](https://www.youtube.com/watch?v=kTyvu0uxPzg) from Scale by the Bay 2018 about immutable APIs and mutable internals. I had a very rough idea about the `BloomFilterAggregator` and how it would look following the design pattern you discussed, I tried it in this [gist here](https://gist.github.com/anish749/426427f72c9c2fa00eaaa90ee03c8507) Do you think this would work if we use a version of the cats [`BitSet`](https://github.com/typelevel/cats-collections/blob/master/core/src/main/scala/cats/collections/BitSet.scala) which works great when a low number of bits are set?