 
 (defn compile-tag 
   "Pre-compile a single tag vector where possible."
-  [element]
-  (case-pattern element
-    [& (every? literal? content)]
+  [[tag attrs & content :as element]]
+  (cond
+    (every? literal? element)
       (render-tag (eval element))
-    [(literal? tag) (map? attrs) & content]
+    (and (literal? tag) (map? attrs))
       (compile-partial-tag tag attrs content)
-    [& content]
-      `(render-tag [~@(compile-html content)])))
+    :else
+      `(render-tag [~@(compile-html element)])))
 
 (defn compile-html
   "Pre-compile data structures into HTML where possible."

       (or (not (vector? x))
           (every? literal? x))
       (or (not (seq? x))
           (= (first x) `quote))))

(declare compile-html)


    (seq? data)    (apply str (map render-html data))
    :otherwise     (as-str data)))

(defn- quoted?
  "True if x is a quoted symbol."
  [x]
  (and (seq? x) (= (first x) `quote)))

(defn- literal?
  "True if x is a literal value that can be rendered as-is."
