MatzeB added a comment. This is looking pretty good, but I'd expect the range based for loops to use the same type as operator() of `operator*()`, i.e. `for (unsigned Bit : Empty.set_bits()) {}. https://reviews.llvm.org/D32060