Sembra che il compilatore Clojure non lo faccia di default: Does the Clojure compiler check if records and types implement protocols? Qualche plugin, ad esempio Lein, che fa questo?
Al momento, ho una libreria Clojure completamente funzionale che viene chiamata da Java. Il modo in cui faccio questo: ho un file che utilizza gen-class per avvolgere l'intera API come metodi statici