       (let [writer (. response (getWriter))]
         (doseq c change
           (. writer (print c))))
-    (number? change)
+    (instance? clojure.lang.FixNum change)
       (. response (setStatus change))
     (map? change)
       (doseq [k v] change

  "Returns true if x is contained in coll, else false."
  [x coll]
  (some (partial = x) coll))

(defn number?
  "Returns true if an Clojure number type."
  [x]
  (or (instance? clojure.lang.FixNum x)
      (instance? clojure.lang.DoubleNum x)))

(defn re-escape
  "Escape all special regex chars in a string s."

                    (rest (re-groups matcher)))))))

(defn update-response!
  "Destructively update a HttpServletResponse via a Clojure datatype.
     * FixNum        - updates status code
     * map           - updates headers
     * string or seq - updates body
   Additionally, multiple updates can be chained through a vector.

   e.g (update-response! \"Foo\")       ; write 'Foo' to response body
       (update-response! [200 \"Bar\"]) ; set status to 200, and write 'Bar'"
  [#^HttpServletResponse response change]
  (cond 
    (string? change)
