                                                     (dissoc bes (key entry))
                                                     ((key entry) bes)))
                                           (dissoc b :as :or)
-                                          {:keys #(keyword (core/str %)), :strs core/str, :syms #(list `quote %)})]
+                                          {:keys #(keyword (core/str %)), :strs core/str, :syms #(core/list `quote %)})]
                            (if (seq bes)
                              (core/let [bb (key (first bes))
                                         bk (val (first bes))
                                         has-default (contains? defaults bb)]
                                (recur (pb ret bb (if has-default
-                                                   (list `get gmap bk (defaults bb))
-                                                   (list `get gmap bk)))
+                                                   (core/list `get gmap bk (defaults bb))
+                                                   (core/list `get gmap bk)))
                                       (next bes)))
                              ret))))]
                     (cond

  "Throws an exception if the given option map contains keys not listed
  as valid, else returns nil."
  [options & valid-keys]
  (when (seq (apply disj (apply hash-set (keys options)) valid-keys))
    (throw
     (apply core/str "Only these options are valid: "
	    (first valid-keys)

  `(.. ~tsym -prototype ~(to-property sym)))

(defn adapt-obj-params [type [[this & args :as sig] & body]]
  (core/list (vec args)
    (list* 'this-as (vary-meta this assoc :tag type) body)))

(defn adapt-ifn-params [type [[this & args :as sig] & body]]
