     (-write-str (seq x))
     (throw (Exception. (str "Don't know how to write SHON of " (class x))))))
 
+(defn- write-hyperlink [x]
+  (html [:a {:href (str x)} (str x)]))
+
 (defn write-shon-specified [x]
   (let [{:keys [tag attrs value]} x
         v [tag]

              *value-fn* value-fn]
      (-write-str x))))

(defn pprint [x]
  (let [transform-fn (compile-xslt (io/resource "Identity.xslt"))]
    (println (str (transform-fn (compile-xml x))))))

(extend java.util.Map          SHONWriter {:-write-str write-dl})
(extend java.util.Collection   SHONWriter {:-write-str write-ul})

;; html things
(extend java.net.URL           SHONWriter {:-write-str write-hyperlink})
(extend java.net.URI           SHONWriter {:-write-str write-hyperlink})
(extend java.lang.Object       SHONWriter {:-write-str write-generic})

(defn write-str [x & options]
