   macro and binind the functions arguments to *site-options* and *parse* so
   partials can easily access them."
   [sym-name doc-string? destructuring & body]
-  (let [[doc-string destructuring]
-        (if (string? doc-string?)
-          [doc-string? destructuring]
-          ["" doc-string?])]
+  (with-normalized-params
     `(defn ~sym-name
        ~doc-string
        [site-options# ^incise.parsers.parse.Parse parse#]


(declare ^:dynamic *site-options*)
(declare ^:dynamic *parse*)

(defmacro deflayout
  "This is a helper macro for defining html layout functions. An html layout

           (with-scope ~@body))))))

(defmacro defpartial
  "Defines a 'partial' which is basically a function with some default context."
  [sym-name doc-string? destructuring & body]
  (with-normalized-params
    `(defn ~sym-name
       ~doc-string
       [& args#]
