Changes
check for existing values in p.union value arrays
if trackArrays[k] then
local array = ret[k]
local valExists for _, arrayVal in ipairs(array) do if arrayVal == v then valExists = true end end if not valExists then array[#array + 1] = v ret[k] = array end
else
ret[k] = {ret[k], v}