 	       prefer-table# (atom {})
 	       method-cache# (atom {})
 	       cached-hierarchy# (atom {})
-	       hierarchy# (get ~options :hierarchy cljs.core/global-hierarchy)
+	       hierarchy# (core/get ~options :hierarchy cljs.core/global-hierarchy)
 	       ]
 	   (cljs.core.MultiFn. ~(name mm-name) ~dispatch-fn ~default hierarchy#
 			       method-table# prefer-table# method-cache# cached-hierarchy#))))))

    (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   (get options :default :default)
          ;; hierarchy (get options :hierarchy #'cljs.core.global-hierarchy)
	  ]
      (check-valid-options options :default :hierarchy)
      `(def ~(with-meta mm-name m)

       (let [h# (~hash-fn ~coll)]
         (set! ~hash-key h#)
         h#))))

(defmacro get
  ([coll k]
     `(-lookup ~coll ~k nil))
  ([coll k not-found]
     `(-lookup ~coll ~k ~not-found)))

;;; internal -- reducers-related macros

