I have to wonder if it wouldn't make more sense to keep a counter in `ElementSwaps` for how many swaps have been made. This would allow `size_hint()` to be accurate.