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.