function valuestokeys(tbl) local tbl2 = {} for _, v in pairs(tbl) do tbl2[v] = true end return tbl2 end function keystolist(tbl) local tbl2 = {} for k, _ in pairs(tbl) do table.insert(tbl2, k) end return tbl2 end -- iterate over values of an array function all(t) local i = 0 local n = #t return function () i = i + 1 if i <= n then return t[i] end end end