Any function supplied as a metamethod must have the same argument
and return value lis as the built-in function it replaces.
table[key]. This event happens when
tableis not a table [...].
It is well documented what happens when the argument and return value
counts in a function call of a function differ from what is expected.
Wrong only in the sense that the extra return values are quietly