if my structure is
{ :a :A :b :B :c { :d :D } :e { :f { :g :G :h :H } } }
I
(defn keys-in [m] (if (or (not (map? m)) (empty? m)) '(()) (for [[k v] m subkey (keys-in v)] (cons k subkey))))