Loop name problem

This has been a feature of fortran from the beginning. One can have variables named do, if, write, print, call, rewind, and so on, and somehow the syntax of the language is able to keep track of the variables and the keywords. Construct names are a more recent language feature, and apparently it is not possible to avoid all conflicts with those.