global x -- define a global x
local c -- define a local variable
c = a * b + y -- compile time error---y not defined
I am not exactly sure. The more I think about it, the more convinced I am that, in principle, it is enough for the explicit mode to remove the current syntactic sugar that converts anything not defined as a local into a global table lookup. This will eliminate the silent promotion of mistyped locals into globals, and the need to type the ugly _ENV will always be a reminder for users that globals are not exactly cheap.