(defn wrapping-meta
[{:keys [form env] :as expr}]
(let [meta (meta form)]
(if (and (obj? form)
(seq meta))
{:op :with-meta
:env env
:form form
:meta (analyze-form meta (ctx env :ctx/expr))
:expr (assoc-in expr [:env :context] :ctx/expr)
:children [:meta :expr]}
expr)))