(defn validate-tag [t {:keys [env] :as ast}]
(let [tag (ast t)]
(if-let [the-class (u/maybe-class tag)]
{t the-class}
(if-let [handle (-> (env/deref-env) :passes-opts :validate/wrong-tag-handler)]
(handle t ast)
(throw (ex-info (str "Class not found: " tag)
(merge {:class tag
:ast (prewalk ast cleanup)}
(source-info env))))))))