<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:"times new roman",serif;font-size:large"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 3, 2023 at 10:20 AM Bakul Shah <<a href="mailto:bakul@iitbombay.org">bakul@iitbombay.org</a>> wrote:<br></div><div dir="ltr" class="gmail_attr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>I have not heard such horror stories about Common Lisp (or may be I have forgotten them!). </div></blockquote><div><br></div><div class="gmail_default" style="font-family:"times new roman",serif;font-size:large">Both Common Lisp and Python have optional static typing that is as rigorous as you might want.  In the case of Python it is an outboard tool that you put into your build file; Python itself ignores declarations.  (That means that the declarations are not used to optimize runtime performance.)  The mypy tool does extensive type inference; you can get a long way without ever writing a declaration.</div><div class="gmail_default" style="font-family:"times new roman",serif;font-size:large"><br></div><div class="gmail_default" style="font-family:"times new roman",serif;font-size:large">For CL, type checking is part of the compiler; the interpreter generally ignores type declarations, although Steel Bank CL, the fastest existing implementation, uses the compiler even in the REPL.  </div></div></div>