Lua tables accept arbitrary objects as keys, and make a difference between `foo[1]` and `foo["1"]`.
Plus all the metatables goodies: weak key and/or value references, prototype inheritance, ...
Plus all the metatables goodies: weak key and/or value references, prototype inheritance, ...
That sounds... completely normal? Python dictionaries will do that too. So will Java HashMaps.