`TypedDict` should extend `dict` not `Mapping`
And it should override the clear method to be Never.
the only way to do this without breaking the functionality that bans clear from being called on TypedDicts would be to override its clear method with clear: Never, but that wouldn't work because pyright doesn't complain when you use objects typed as Never
so this change relies on #97
this would also make reportInvalidCast less annoying (see here)
eh, i don't think we should do this, it becomes less safe even if we make clear typed as Never:
foo: dict[{"a": int}]
bar: dict[str, int] = foo
bar.clear() # no error
Is this only because we don't get an error about unreachable?
no it's because the Never is widened to something that's not Never