One possible retort to your assertion is that the static type systems you depend on (I'm assuming you're a general purpose programmer using general purpose imperative tools) are not correct by construction in and of themselves in terms of guaranteed reliability post compilation (when it really matters; during execution). Nothing guarantees that any imperative type will be 100% reliable in execution context (you expect type A as a result of a computation, but instead get an Exception E.... Sure, you can decorate your code in exeception handlers, but this doesn't help your stated case, fundamentally)C