In a dynamic language, it is a great POO feature that an object is both prototype and instance: thus when building nested hierarchies of incrementally refined prototypes, you don't need to manually track the shape of the hierarchy to recursively instantiate all prototypes.
A static type system capable of inferring types for POO doesn't seem to exist yet. Surely, some encoding in dependent types is possible, but nobody seems to have done so yet, and then the question remains of how inferrable those types are. Challenge to static typists!
Read my blog!