(defn analyze-seq
([env form name]
(analyze-seq env form name
(when env/*compiler*
(:options @env/*compiler*))))
([env form name opts]
(if ^boolean (:quoted? env)
(analyze-list env form)
(let [line (-> form meta :line)
line (if (nil? line)
(:line env)
line)
col (-> form meta :column)
col (if (nil? col)
(:column env)
col)
env (assoc env :line line :column col)]
(let [op (first form)]
(when (nil? op)
(throw (error env "Can't call nil")))
(let [mform (macroexpand-1 env form)]
(if (identical? form mform)
(analyze-seq*-wrap op env form name opts)
(analyze env mform name opts))))))))