This special handling technique is known as a compiler macro in clojurescript (and elsewhere). Essentially, all direct calls to instance? get emitted as an instanceof expression for performance. Higher order uses behave as expected:
user=> (apply instance? Long []) ArityException Wrong number of args (1) passed to: core$instance-QMARK- clojure.lang.AFn.throwArity (AFn.java:437) Unfortunately the handler in the compiler doesn't do arity checks, hence the behavior you see. IMO this is a bug. I can't speak for clojure/core, but I believe ticket and patch would be welcome in this case. -- -- 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/groups/opt_out.