```lua local record Test metamethod __len: function(Test): number end local test_mt: metatable<Test> = { __len = function(self: number): number -- somehow this typechecks? return self end } local test: Test = setmetatable({}, test_mt) print(#test) ```