I'm not sure what exactly Martin was testing; however if you do for example
write("%d\n", Foo.i);
then the value of Foo.i is evaluated _compiletime_, so changing the value i in the module Foo will not change the value printed by the code, unless you recompile it. This is because . is the _compiletime indexing operator_. If you want the value to be evaluated at runtime, you need to use -> or []:
write("%d\n", Foo->i);