this construction seems to be not so clear. Would not be bettr to just use:
```d
auto front() @property
{
        assert(!_range.empty);
        return tuple(index, _range.front);
}
```