And the first example still doesn't compile: ``` struct Range(R) { import std.array : empty, front, popFront; R range; bool empty() const { return range.empty; } auto front() const { return range.front; } void popFront() { range.popFront(); } }
void main() { auto rng = Range!string("1234"); assert(rng.front == '1'); } ``` onlineapp.d(11): Error: void has no valueonlineapp.d(11): Error: incompatible types for (rng.front) == ('1'): void and char
```