This article discusses how you often need #'foo rather than foo in Clojure code so you can redefine foo whilst testing your app interactively: https://srasu.srht.site/var-evaluation.html Perhaps function pointers should evaluate to themselves? I wonder if there's a language solution here.