                        (cons (subs s 0 idx) (seg (subs s (inc end))))))))
            enve (assoc env :context :expr)
            argexprs (vec (map #(analyze enve %) args))]
-       {:env env :op :js :segs (seg jsform) :args argexprs :children argexprs
+       {:env env :op :js :segs (seg jsform) :args argexprs
         :tag (-> form meta :tag) :form form}))
     (let [interp (fn interp [^String s]
                    (let [idx (.indexOf s "~{")]

           "])")))

(defmethod emit :vector
  [{:keys [children env]}]
  (emit-wrap env
    (emits "cljs.core.PersistentVector.fromArray(["
           (comma-sep children) "])")))

(defmethod emit :set
  [{:keys [children env]}]
  (emit-wrap env
    (emits "cljs.core.set(["
           (comma-sep children) "])")))

(defmethod emit :constant
  [{:keys [form env]}]

    (emits "cljs.core.with_meta(" expr "," meta ")")))

(defmethod emit :map
  [{:keys [env simple-keys? keys vals]}]
  (emit-wrap env
    (emits "cljs.core.PersistentHashMap.fromArrays(["
           (comma-sep keys)
