the filename is the first parameter. It would be more judicious if it was the second.
e.g, you cant do that for now
---
string doStuff1(string);
string doStuff2(string);
dirEntries(...)
.map!(a => tuple(a.name, readText(a.name))
.each!(a => a[1].doStuff1()
.doStuff2()
.write(a[0])); // oops
---
it can happen very easily, even on a simple stuff like
---
buffer.write(name);
---
The choice of the order is very poor.
Both cases presented here happened for real. At some point if you don't take care you finish with a folder containing files with cryptic names and each of them contains a path. Hilarious.
As UFCS mimics the beahior of member functions we can compare `std.file.write` to something like `MemoryStream.writeToFile()` hence the "pseudo" `this` must be for the data, not the name.