(def +envs+ (atom {}))


(defmacro get-env []
  (let [env-key (gensym)]
    (swap! +envs+ assoc env-key &env)
    {:lb `(@+envs+ '~env-key)
     :vals   (into {}                  ; Thanks to amalloy for pointing me to into
               (for [s (keys &env)]
                 [(list 'quote s) s]))}))
  

(let [a 1] (println (get-env)))
  