>>601. Static analyzer as a compilation check works. However, assuming this is working off of type inference, the type error messages may not be all that clear. If the programmer has written out the type signatures eyself, then the analyzer can point out the conflicting points directly. Otherwise, when types are inferred, the analyzer may infer types that weren't intended by the programmer, and when the conflicts are listed, they might not make sense. For it to really work it needs to be interactive. Or the analyzer would need to list all inferred types so the programmer could look through it and find the ones that doesn't match what they thought, and fix the problem there.
2. That's certainly possible but not really achievable using crap like python. It's a large effort and can only really work if the compiler and analyzer are designed to work together from the start. I think the easiest way to get this would be to have the analyzer output the code in a sub language with explicit types, and then feed this into a secondary compiler.