   (if (and (seq? trees) (seq? (first trees)))
     (apply html (first trees))
     (map-xml html-formatter trees)))
-

        (expand-seqs (ensure-attrs tree)))
      (str tree))))

(def #^{:private true
        :doc "A set of HTML tags that should be rendered as blocks"}
  html-block-tags
  #{:blockquote :body :div :dl :fieldset :form :head :html :ol
    :p :pre :table :tbody :tfoot :thead :tr :script :select :ul})

(def #^{:private true
        :doc "HTML tags that should be rendered on their own line"}
  html-line-tags
  #{:br :dd :dt :h1 :h2 :h3 :h4 :h5 :h6 :hr :li :link
    :option :td :textarea :title})

(defn- parse-css-tag
  "Pulls the id and class attributes from a tag name formatted in a CSS style.


(ns compojure.html
  (:use (compojure str-utils)
        (clojure.contrib def
                         seq-utils)))

(defn- optional-attrs
  "Adds an optional attribute map to the supplied function's arguments."
