**@jibal** I know you can do it that way - it's what I was trying to avoid. The
Curly's Law link you posted is IMO advising against using the same variable
name in very different contexts, but it doesn't do (for me) to follow the
precept too dogmatically. For example, I often use `i` and `s` as scratch
variables for integers and strings, repeatedly, in functions where the meaning
of how they're used is localised and easy to grasp. In a medium sized function,
if I have two counted loops going over something, I'm not going to use `i` as
one counter and `j` as the other if the loops are disjoint and short, just to
keep Curly happy (I'm talking generally there, not about Nim specifically.) In
this case, `line` has the meaning for me of "the current line of text I'm
working on, in whatever state of processing I want it to be in at this point in
the loop".