@tvdstorm ah, I think clojure macro's can, they have an implicit &env and &form argument. More:

you can call &env and &form to get a bit of interesting information that may or may not be helpful. Here's a few examples that demonstrate how &env and &form can be used. (note: I'm using Clojure 1.2) &env By default &env is nil.user=> (defmacro show-env [] (println &env)) #'user/show-env user=> (show-env) nil However, if any bindings exist, &env gives you the names of the bindings as the keys of a map.user=> (let [band "zeppelin" city "london"] (show-env)) {city #<LocalBinding clojure.lang.Compiler$LocalBinding@78ff9053>, band #<LocalBinding clojure.lang.Compiler$LocalBinding@525c7734>} Okay, now we're getting somewhere. What's a Compiler$LocalBinding? I'm not exactly sure, and I've never bothered to look into it. I've been told that the 'values' from &env may change in the future, so I wouldn't rely on them anyway. Since I can't rely on them, I haven't found the need to ...