Sam suggests the way to deal with is to pass in an Impl to the HitSet constructor, and then we can do all the Impl-specific bits when building it up. That's probably correct and I'll whip it up unless I come up with something better in the meantime.