https://issues.dlang.org/show_bug.cgi?id=22873
--- Comment #2 from [email protected] --- Paul Backus wrote on Slack: Yes, this is an easy pit to fall into. In order to work correctly with inout, dummy variables like the one in hasToString need to be declared as parameters, not locals. See e.g. std.range.isInputRange, which gets this right: https://github.com/dlang/phobos/blob/v2.099.0/std/range/primitives.d#L174 --
