So, we have the length operator, #. It sucks. Why does it suck? Well, it's simple really. Excluding 2 things: - Table literals start at 1 - The len operator starts at 1 Lua already supports 0-based indexing. If we remove the len operator issue, then we only have the table literals issue. That can be solved by using a preprocessor and tweaking every table literal to start at 0. (You could also use a preprocessor to turn #x into len(x) but then you have to deal with all the libs that use len as a local) Everything else can be fixed by replacing the stdlib. Changing from #x to len(x) would significantly reduce complaints. (Please make the 0-indexing ppl go away already.) Alternatively, can we get _INDEX? e.g. _INDEX = 0 local t = {0, 1, 2, 3} print(t[0], t[1], t[2], t[3]) --> 0 1 2 3