   "Renders a tree of vectors into a string of HTML. Pre-compiles where
   possible."
   (:use clojure.contrib.def
-        clojure.contrib.java-utils))
+        clojure.contrib.java-utils)
+  (:import java.util.Map))
 
 (defn escape-html
   "Change special characters into HTML character entities."

(defn- literal?
  "True if x is a literal value that can be rendered as-is."
  [x]
  (and (not (unknown? x))
       (or (not (vector? x))
           (every? literal? x))))


      (render-tag (eval element))
    (and (literal? tag) (map? attrs))
      (compile-partial tag attrs content)
    (and (literal? tag) (or (not (uneval? attrs)) (not-hint? attrs Map)))
      (compile-partial tag {} (cons attrs content))
    :else
      `(render-tag
