If a base class defines `__new__` and returns the wrong type. This does happen in some instances; we could have done this for connections:
```python
class Connection():
    def __new__(cls, *args, **kwargs):
        if 'function' in kwargs:
            return DecodedConnection(*args, **kwargs)
        else:
            return RawConnection(*args, **kwargs)
```
However, since we are the only ones that will ever use this metaclass, we probably don't need this check. I included it because that's what `type.__call__` does.