This sentence deserves to be examined for alternatives:<p>&quot;To make all this work, you have to insert runtime checks between the typed and untyped portions of the program.&quot;<p>That makes it sounds as if there are 2 choices:<p>1.) insert runtime checks<p>2.) don&#x27;t insert runtime checks<p>I&#x27;ll point out that many platforms (in particular, the JVM) allow us to pursue a 3rd option:<p>3.) insert runtime checks in development and whenever you are debugging, but strip them out when you are in production and things are going well<p>You can fill your code pre and post assertions on functions. These slow your software but they give you most of the benefits of gradual typing. You can run your code with these assertions whenever you need to debug. But if you ever want a speed boost, and you feel like your software is stable and bug-free, then you can simply pass a flag to the JVM compiler, and it will strip out the assertions for you.