The dumbest part of this is the stupid AttachmentKey class, which causes ClojureRuntime clients to pull in ClojureRuntimeService as well. Moving ClojureRuntime into Dayum renders runtime/api pretty empty -- maybe move it back into core? Does ClojureRuntimeImpl have to be in a module separate from ClojureRuntime? If not, should we move it into dayum as well?
We do this by mimicking clojure.lang.Var's invoke method proliferation to avoid varargs where we can. God bless emacs macros.