(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)))
KGRlZiArZW52cysgKGF0b20ge30pKQoKCihkZWZtYWNybyBnZXQtZW52IFtdCiAgKGxldCBbZW52LWtleSAoZ2Vuc3ltKV0KICAgIChzd2FwISArZW52cysgYXNzb2MgZW52LWtleSAmZW52KQogICAgezpsYiBgKEArZW52cysgJ35lbnYta2V5KQogICAgIDp2YWxzICAgKGludG8ge30gICAgICAgICAgICAgICAgICA7IFRoYW5rcyB0byBhbWFsbG95IGZvciBwb2ludGluZyBtZSB0byBpbnRvCiAgICAgICAgICAgICAgIChmb3IgW3MgKGtleXMgJmVudildCiAgICAgICAgICAgICAgICAgWyhsaXN0ICdxdW90ZSBzKSBzXSkpfSkpCiAgCgoobGV0IFthIDFdIChwcmludGxuIChnZXQtZW52KSkpCiAg