```lua ---@class base ---@class builder ---@generic T: base ---@overload fun(name: `T`): T local builder = {} local function __call(self, name) .... end setmetatable(builder, { __call = __call }) ``` Thats will be helpfull for table have an metatable.__call