Wrapping foo in another delegate seems to at least compile.
Same as splitting out the struct. I don't understand why a struct outside of a function gets treated differently than a static struct.
```
auto split(alias F,R)(R r){
return splitter!(F,R)(r);
}
private struct splitter(alias F, R){
R r;
auto front()=>r.takeuntil(r.findnext!F);
void popFront(){r=r.findnext!F;}
bool empty()=>r.empty;
}
```
