On Tue, Aug 20, 2013 at 10:35 PM, Francesco <francesco.bbt@xxxxxxxxx> wrote: > May be that one way to obtain the delayed evaluation is to create a a new > type of value in the VM, a delayed function (or lazy value). When such a > value appear in an expression its value should be evaluated by calling the > underlying function. I share Francesco's concern with making a simple variable access trigger an arbitrarily complex operation. It is like a global property, and as such can be inefficiently done with _G and __index. What do we lose from having to say () ? That is explicit and clear. I understand that the idea is to get lazy evaluation, but I think it could be confusing to others. steve d.