--- /dev/null
+\section{Extension {\tt declare\_globals}: mandatory declaration of global\r
+ variables}\r
+There is a {\tt strict} library in Lua, also provided by metalua, which\r
+complains when one tries to access a global variable which hasn't been\r
+initialized, and when a global variable is initialized anywhere but at the\r
+program's top-level. This catches many errors, especially typos on variable\r
+names. \r
+\r
+However, with a macro-enabled language, we can do slightly better: we add a {\tt\r
+ global} keyword, which works as {\tt local}, allows to declare global\r
+variables, which can subsequently be used freely. Undeclared global variables\r
+cause an error when one tries to read or write them.\r
+\r
+FIXME: need a ``global function ...'' syntax; interactions with sub-modules is\r
+not tested correctly.\r