     (replace ">"  "&gt;")
     (replace "\"" "&quot;")))
 
+(defn quoted?
+  "True if the form is a quoted value."
+  [x]
+  (and (list? x)
+       (= 'quote (first x))))
+
 (defn literal?
-  "True if the value is a literal string, keyword, number, map, vector, nil
-  or a quoted value."
+  "True if the value is a not a list or a quoted value."
   [x]
-  (or (string? x)
-      (number? x)
-      (keyword? x)
-      (vector? x)
-      (map? x)
-      (nil? x)
-      (and (list? x)
-           (= (first x) 'quote))))
-
-(defn- pre-compile
-  "Pre-compile a form if its arguments are all literals."
-  [form]
-  (if (every? literal? (rest form))
-    (eval form)
-    (list form)))
+  (or (not (list? x))
+      (quoted? x)))
 
 (defn- format-attr
   "Turn a key-value pair into a pair of attribute-value strings."

(ns hiccup
  "Efficiently generate HTML from a Clojure data structure."
  (:use clojure.contrib.def)
  (:use clojure.contrib.java-utils)
  (:import clojure.lang.IPersistentVector)
  (:import clojure.lang.IPersistentList))

(defn escape-html
  "Change special characters into HTML character entities."

    '()
    (reverse coll)))

;(defmacro html
;  "Efficiently compile a Clojure data structure into a list of HTML."
;  [& content]
;  `(list ~@(mapcat compile-html content)))
