I have been reading about typing.Sequence and typing.MutableSequence. There isn't a ton of "light reading" out there on either of the two, everything goes straight into details.
From this answer to Can you specify variance in a Python type annotation?
Sequence is the read-only version of List
So that leads me to wonder, what is the difference between MutableSequence, and just a plain List?
More Details
The best source I could find was the The standard type hierarchy section of the Python Data model.
From reading the section Mutable sequences, it seems like MutableSequence might be a "parent" of List?
In other words, one can use them interchangeably, just MutableSequence is a bit less restrictive?
Sequenceis not a read-only version ofList. The answer you read was wrong about that.Lists(docs.python.org/3.6/library/stdtypes.html#lists), it says "Lists are mutable sequences". So am I correct in my understanding thatMutableSequenceis a superset ofList?Listis a superset ofMutableSequence's guaranteed features.MutableSequenceis the minimum requirement, but alistcan do stuff that not allMutableSequences can do, e.g.listcan hold any object, while other mutable sequences likearray.arrayare limited to numeric types in specific ranges.