> I have exactly the right amount of information I want.
Really? Because `ReadFile` already adds the path to the context, so what you actually get is
read /tmp/foo: open /tmp/foo: no such file or directory
which is more confusing than "the right amount of information".
Furthermore nothing precludes `Must!` taking a prefix and wrapping automatically, does it?
> Assigning to err magically (it's not even mentioned in the source code) is exactly the kind of thing that'll turn out to be the cause of a subtle bug 6 months later.
What bug? It's assigning and returning, the only situation where you'd have "a subtle bug" is if you didn't check the previous call and overwrote its error, which is exactly what you get with the code you propose.