Elm is typed, Clojurescript is homoiconic. 2 great features.<p>Wondering if you could make a lisp where `lambda` or `fn` required type annotations, such as<p><pre><code>    (defn add 
      [int -&gt; int -&gt; int] ;; type annotation
      [x y] ;; arguments list
      (+ x y))
</code></pre>
Then it would be homoiconic - something that has saved me hundreds of lines of code (and the less code, the less bugs as a rule of thumb).<p>Then every function down to the very basic lisp functions would have types. Dunno how doable this is - but it doesnt matter. Someone implemented it in Common Lisp in the 80s I&#x27;m sure.