At this point the loop has become baroque enough to warrant taking some from the iteration and putting it in the body. Thoughts?

```D
while (!r1.empty && !r2.empty && binaryFun!pred(r1.front, r2.front))
{
    ++i;
    r1.popFront();
    r2.popFront();
}
```