Is this really equivalent to a statically typed language like Java? I thought adding such checks will not make a dynamically typed language a static one, or?