          (fn [[sstyles svalues] [query styles]]
            (let [[static values] (compile-media {:styles styles})
                  query (-compile-media-query query)]
-             [`(cljs.core/str ~sstyles ~query ~static) (concat svalues values)]))
+             [(str sstyles query static) (concat svalues values)]))
          ["" []])))
 
 (defmethod compile-media :styles [{styles :styles}]

(defmethod compile-media-query :plain [[_ {:keys [feature-name feature-value]}]]
  (let [feature-name  (compile-media-query [:feature-name feature-name])
        feature-value (compile-media-query [:feature-value feature-value])]
    (if (literal? feature-value)
      (str "(" feature-name ":" feature-value ")")
      `(cljs.core/str ~(str "(" feature-name ":") ~feature-value ")"))))

(defmethod compile-media-query :range [[_ range]]
  (compile-media-query range))

        right          (compile-media-query [:feature-value right])
        left-operator  (name left-operator)
        right-operator (name right-operator)]
    (str "(" left " " left-operator " " feature-name " " right-operator " " right ")")))

(defn -compile-media-query [query]
  (let [ret (s/conform ::media-query query)
        ret (if (= ::s/invalid ret)
              (throw (Error. (s/explain ::media-query query)))
              (compile-media-query ret))]
    (->> (flatten ret)
         (clojure.string/join " ")
         (str "@media "))))

(defn compile-media-dispatch [styles]
  (cond
