You can also mark this as inout, to allow const slicing. But you have to change the implementation to:
```D
        typeof(this) opSlice(size_t lower, size_t upper) inout
        {
            return typeof(this)(r[lower..upper]);
        }
```
If not, you'll get "can only initialize const member r inside constructor" (and besides, it's shorter).