do --- tables as keys in tables
  local fwd, bck = {}, {}
  for i = 1,100 do
    local v = {}
    fwd[i] = v
    bck[v] = i
  end
  for i = 1,100 do
    local v = fwd[i]
    assert(type(v) == "table")
    assert(bck[v] == i)
  end
end

do --- some tables as keys in tables
  local fwd, bck = {}, {}
  for i = 1,100 do
    local v = {}
    fwd[i] = v
    if i > 90 then
      bck[v] = i
    end
  end
  local n = 0
  for i = 1, 100 do
    local v = fwd[i]
    if bck[v] then
      n = n + 1
    end
  end
  assert(n == 10)
end