`complements` is immutable. In fact, it is a translation map, so I can't use `complements.swap(*front, *back)`. But I like the idea to consume an iterator by the 2 sides. I'll see how to rewrite that.