           close-tag [(safe "</") tag-name (safe \>)]]
       (w [open-tag (if-not is-empty [content close-tag])]) )))
 
-(defn- make-set [x]
-  (cond 
-    (nil? x) (sorted-set)
-    (seq? x) (sorted-set x)
-    :else (sorted-set (vector x))))
 
-(defn- nil-or-empty? [x]
-  (or (nil? x)
-      (empty? x)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; DomNode builder helpers
 
 (defn- merge-tag-attrs [tag-attrs id clazz]
   (let [


(defn html5 [& contents]
  [(doctype :html5)
   [:html ;{:lang (options# :lang)}
    contents]])

  nil (visit [_ _] "")
  Number (visit [n w] (safe (str n)))
  PreEscaped (visit [x _] x))

(defrecord TagAttrs [tag attrs-map]
  HtmlSerializable
