Thanks, betterworld.
Your proposal works.
When you say a variable should not be defined more than once in a block - I did not think I did that in the code as the second declaration is conditional to the variable not being defined.
Am I missing anything here?
Comment on Re^2: conditional definition of variables
you will have all the compile time effects, and maybe the runtime effects. This was abused (with 'EXPR' being 0) to get "state" variables in 5.8 and before (which didn't always 'work'), which in turn let to the "state" keyword in 5.10.