I'm huge fan of CL and dynamic typing. That said, I think static type analysis done right has it's place.<p>I don't see any reason why you can't integrate static analysis into dynamic language development process like in CL. SBCL compiler already does huge amount of type analysis in compile time. Instead of type errors, it gives type warnings and hints for the purpose of making faster code.<p>What if you would extend this functionality outside compilation. What if you could declare functions that are entry points to the "program" and you would do block compilation equivalent and give type errors if programmer wants them. This would probably be before commit type thing and part of testing.