function class(super, self) assert(super == nil or super.__index == super) self = self or {} self.__index = self setmetatable(self, super) return self end function getAncestors(self) local family = self local list = {} while family.__index ~= nil do table.insert(list,family.__index.type) family = family.__index end return list end