require("import") -- the import fn import("iadd") -- import lib into global i=iadd --alias -- catching undefined variables local env = _ENV -- Lua 5.2 if not env then env = getfenv () end -- Lua 5.1 setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end}) foo1 = i.Foo() foo1_a = foo1.AsA assert(foo1_a.x == 5) assert(foo1_a:get_me().x == 5) -- Unfortunately, in Lua operator+= can't be overloaded foo1.AsLong = 1000 assert(foo1.AsLong == 1000)