Changes
add a more detailed comment about metatable behaviour
	end
	--[[	-- Define metatable behaviour.Arguments are stored in the metaArgs table, and are only fetched from the	-- fargs and pargs tables once. Also, we keep a record in the metatable of when pairs and ipairs have	-- been called, so we do not run pairs and ipairs on fargs and pargs more than once. We also do not run	-- ipairs on fargs and pargs if pairs has already been run, as all the arguments will already have been	-- copied over.	--]]
	metatable.__index = function (t, key)
		local val = metaArgs[key]