       (binding [*out* out
                 *cljs-ns* 'cljs.user
                 *cljs-file* (.getPath ^java.io.File src)
-                *position* (atom [0 0])]
+                *position* (atom {:line 0 :col 0})]
         (loop [forms (forms-seq src)
                ns-name nil
                deps nil]

  ;    (print (apply str (concat (repeat (- 120 column) \space) ["// " (inc line)])))))
  (println)
  (when *position*
    (swap! *position* (fn [[line column]]
                        [(inc line) 0])))
  nil)

(defmulti emit-constant class)

      (map? x) (emit x)
      (seq? x) (apply emits x)
      (fn? x)  (x)
      :else (let [s (print-str x)]
              (when *position*
                (swap! *position*
                  (fn [{:keys [line col]}]
                    {:line line :col (+ col (count s))})))
              (print s))))
  nil)

(defn ^String emit-str [expr]
