Adding Deep Immutability

This code can already easily fail:

class L(list):
    def append(self, item): 
        raise ValueError("boom")

l = L()

So I’m not sure a frozen list would be that different from a list subclass, conceptually. The fact that the type(l) is list guard won’t work either (IIUC) may be is worrysome, though.