This (sort of) documents the fact that, unlike say() and attack(),
read() never scribbles on the interpreter's command block.
What those other functions are doing is unclean - though less so than
fully exposed globals. I don't see a way to fix it that isn't pretty
intrusive, alas.