Earlier quoted context omitted.
> The best argument for dynamic types systems, is enjoying debugging in production. This comment is either severe snark or severe ignorance.
Please, do elaborate... If you remove passes of a compiler, you, looking at it whilst running, are the compiler.
It's a bit ironic that now we went down the static rabbit hole so much that we don't realize it's more the opposite: by adding more to your language and compiler to enforce static checks, you turn the compiler itself more and more into a runtime that you are just going to run ahead of time, according to a potentially vastly different set of rules compared to your real runtime. There is no reason why you couldn't do something like this by will but it's just not worth it after a certain point clearly.