function table:extend(other) if type(other) == 'table' then for _, value in ipairs(other) do self[#self + 1] = value end else for value in other do self[#self + 1] = value end end end function table:merge(other) for key, value in pairs(other) do self[key] = value end end function table.from_iter(iter) local t = {} for value in iter do t[#t + 1] = value end return t end