   "Is sym visible from core in the current compilation namespace?"
   #?(:cljs {:tag boolean})
   [env sym]
-  (and (or (get-in @env/*compiler* [::namespaces 'cljs.core :defs sym])
+  (and (or (gets @env/*compiler* ::namespaces 'cljs.core :defs sym)
            (when-let [mac (get-expander sym env)]
              (let [^Namespace ns (-> mac meta :ns)]
                (= (.getName ns) #?(:clj 'cljs.core :cljs 'cljs.core$macros)))))

(defn excluded?
  #?(:cljs {:tag boolean})
  [env sym]
  (if-not (nil? (get-in env [:ns :excludes sym]))
    true
    (not (nil? (get-in @env/*compiler* [::namespaces (get-in env [:ns :name]) :excludes sym])))))

(defn used?
  #?(:cljs {:tag boolean})
  [env sym]
  (if-not (nil? (get-in env [:ns :use-macros sym]))
    true
    (not (nil? (get-in @env/*compiler* [::namespaces (get-in env [:ns :name]) :use-macros sym])))))

(defn get-expander-ns [env ^String nstr]
  (cond

                     (first (string/split sufstr #"\."))
                     suffix))]
      (when (and (not (implicit-import? env prefix suffix))
                 (not (and (not (gets @env/*compiler* ::namespaces prefix))
                           (or (get (:requires (:ns env)) prefix)
                           (get (:imports (:ns env)) prefix))))
                 (not (and (= prefix 'cljs.core) (= suffix 'unquote)))
                 (not (gets @env/*compiler* ::namespaces prefix :defs suffix)))
        (missing-fn env prefix suffix)))))

(defn confirm-var-exists-throw []
