For those following along at home, it turned out not to be a problem with the lein-virgil plugin. It's apparently a bug in Clojure. Renzo and I distilled it down to the following steps:
user=> (definterface Interface (test [])) user.Interface user=> (def p (proxy [Object Interface] [] (test [] 1))) #'user/p user=> (defn get-test [o] (.test ^Interface o)) #'user/get-test user=> (get-test p) 1 user=> (definterface Interface (test [])) user.Interface user=> (def p (proxy [Object Interface] [] (test [] 1))) #'user/p user=> (defn get-test [o] (.test ^Interface o)) #'user/get-test user=> (get-test p) ClassCastException user.proxy$java.lang.Object$Interface$936446c6 cannot be cast to user.Interface user/get-test (form-init7484886365563813996.clj:1) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.