&gt; This is true for static and dynamic typing as well: they exist in degrees. Rust can verify type proofs that other languages can&#x27;t regarding memory safety. Some languages can verify that integer indexes into an array won&#x27;t go out of bounds. Thus it&#x27;s not the case that a given language is either statically typed or dynamically typed<p>Memory safety and static&#x2F;dynamic typing are orthogonal.  C is statically typed but memory unsafe.  Rust is statically typed but memory safe (except in unsafe blocks).  Lua is dynamically-typed but memory safe.<p>I agree that it&#x27;s possible to mix elements of static and dynamic typing in a single language.  C++ is generally statically typed, but also supports dynamic_cast&lt;&gt;.<p>But generally speaking, static and dynamic typing have a very precise definition.  Something that carries around type information at runtime is dynamically typed.  Something that does type analysis at compile time so that the runtime doesn&#x27;t need to carry type information is statically typed.