Can someone tell me why the following code reports two different function addresses? function a() return function () return b() end end function b() return a() end print(a()()) print(a())