
TypedMapping class...Supporting this would allow custom mapping subclasses to be type-able
Unfortunately while this makes a lot of sense in general, our use-case specifically needs to constrain to `dict` as part of the typing (it hits C code which only accepts dicts). Not sure how to thread that needle. If there a way to intersect two type declarations (in this case, dict and TypedMapping) instead of unioning them, this would be workable for us, but that's a larger discussion.
Maybe there could be a way to indicate that a function argument should not be mutated
We thought about something like a `Readonly` generic, but the non-mutability needs to be deeply applied to nested TypedDicts, and that just blew the whole thing out of scope tbh. We decided to keep this proposal narrower, and hopefully it will still provide groundwork for something like this in future. OTOH if a (non-deep) `Readonly` generic is preferable to a kwarg, I think it would work for us; we could "deeply" apply it explicitly.