                             memfn ns or proxy proxy-super pvalues refer-clojure reify sync time
                             when when-first when-let when-not while with-bindings with-in-str
                             with-loading-context with-local-vars with-open with-out-str with-precision with-redefs
-                            satisfies? identical? true? false? nil? str
+                            satisfies? identical? true? false? nil? str get
 
                             aget aset
                             + - * / < <= > >= == zero? pos? neg? inc dec max min mod

		  `(~'-lookup [this# ~ksym else#]
         (cond
           ~@(mapcat (fn [f] [`(identical? ~ksym ~(keyword f)) f]) base-fields)
           :else (get ~'__extmap ~ksym else#)))
		  'ICounted
		  `(~'-count [this#] (+ ~(count base-fields) (count ~'__extmap)))
		  'ICollection

    (when (= (count options) 1)
      (throw "The syntax for defmulti has changed. Example: (defmulti name dispatch-fn :default dispatch-value)"))
    (let [options   (apply hash-map options)
          default   (core/get options :default :default)
          ;; hierarchy (core/get options :hierarchy #'cljs.core.global-hierarchy)
	  ]
      (check-valid-options options :default :hierarchy)
      `(def ~(with-meta mm-name m)
