Should __index actually return nil if there is no value, or just not return any value?
The reference manual pseudo code for __index shows an explicit return nil, so I'm guessing that's the proper way.
Is there a subtle semantic difference? Can anyone provide examples of where this would make a difference?
I am particularly interested in the C API case. So instead of return 0, it would be lua_pushnil(L) then return 1.