I would be more impressed if this did not involve "implicitly statically typed" code as surely one of the joys of high level programming is not having to use implicit typing. However I can totally see the point of prototyping and then adding in the typing and running it through something like this.
You don't have to specify the types of variables. They get inferred automatically. You only have to ensure that each variable has one definite type, i.e. it doesn't change its type throughout the program.
Unless you have a decent type system like Haskell's, statically typed languages are nothing but an unnecessary burden. I am a huge fan of python, and dynamic typing in general... Haskell was the first experience with a language that made me appreciate the power of a type system in certain situations. Every other implementation I've used has been broken.