You gotta change it for all your functions, not just here. It works on my machine.

> Trying to handle arrays uniformly is why it breaks.

I don't understand this. Quote the documentation:
```D
/++
+ The purpose is to bypass the special case decoding that
+ * $(XREF array,front) does to character arrays.
+/
```
`array.front` only does decoding to narrow strings. `dstring` needs no more special treatment than, say `int[]`.

> I don't see how this suggestion improves things.

It avoids creating a wrapper type when the raw type works perfectly well. In particular, the raw type is an array, meaning there are tons of highly optimized code for it, such as for `find`, `fill`, `put`, `copy`... The moment you wrap it into a range, it mostly goes out the window...