Qual é a diferença entre type e type .__ new__ em python?

Eu estava escrevendo uma metaclasse e acidentalmente fiz assim:

class MetaCls(type):
    def __new__(cls, name, bases, dict):
        return type(name, bases, dict)

... em vez de assim:

class MetaCls(type):
    def __new__(cls, name, bases, dict):
        return type.__new__(cls, name, bases, dict)

Qual é exatamente a diferença entre essas duas metaclasses? E, mais especificamente, o que fez o primeiro não funcionar corretamente (algumas classes não foram chamadas pela metaclasse)?

questionAnswers(6)

yourAnswerToTheQuestion