@cj Some computation may happen locally and may be statically analyzed safely. But if computation happens over a a mutually suspicious actor-style network, you actually *don't know* the remote type for sure... you know its *alleged* type. And you don't know the types of the objects that *that* object is accessing (or what objects it has access to).
Checks can/must be performed, but must happen at the boundary between mutually suspicious machines, thus are runtime checks (contracts/guards).