It's reversing and transforming using `complements`

Equivalent but slower:
```rust
        let mut it = seq.mut_iter();
        loop {
            match (it.next(), it.next_back()) {
                (Some(front), Some(back)) => {
                    std::util::swap(front, back);
                    *front = complements[*front];
                    *back = complements[*back];
                }
                _ => break // vector exhausted.
            }
        }

```
Equivalent but much slower:
```rust
        seq.reverse();
        for c in seq.mut_iter() {
            *c = complements[*c]
        }
```