 
 (defn analyze* [env form name opts]
   (let [passes *passes*
-        passes (when (nil? passes) [infer-type])
+        passes (when (nil? passes)
+                 #?(:clj  [infer-type ns-side-effects]
+                    :cljs [infer-type]))
         form   (if (instance? LazySeq form)
                  (if (seq form) form ())
                  form)

                (map (spec-parsers k)
                  (remove #{:reload :reload-all} libs))))
            {} (remove (fn [[r]] (= r :refer-clojure)) args))]
      (when (and *analyze-deps* (seq @deps))
        #?(:clj (analyze-deps name @deps env (dissoc opts :macros-ns))))
      (when (and *analyze-deps* (seq uses))
        (check-uses uses env))
      (set! *cljs-ns* name)
      #?(:clj
         (when *load-macros*
           (load-core)
           (doseq [nsym (vals use-macros)]
             (let [k (or (:use-macros @reload)
                         (get-in @reloads [:use-macros nsym])
                         (and (= nsym name) *reload-macros* :reload))]
               (if k
                 (clojure.core/require nsym k)
                 (clojure.core/require nsym))
               (intern-macros nsym k)))
           (doseq [nsym (vals require-macros)]
             (let [k (or (:require-macros @reload)
                         (get-in @reloads [:require-macros nsym])
                         (and (= nsym name) *reload-macros* :reload))]
               (if k
                 (clojure.core/require nsym k)
                 (clojure.core/require nsym))
               (intern-macros nsym k)))
           (when (seq use-macros)
             (check-use-macros use-macros env))))
      (let [ns-info
            {:name           name
             :doc            (or docstring mdocstr)

(defn ns-side-effects
  [env {:keys [op] :as ast} opts]
  (if (= :ns op)
    (let [{:keys [deps uses require-macros use-macros reload reloads]} ast]
      (when (and *analyze-deps* (seq deps))
        (analyze-deps name deps env (dissoc opts :macros-ns)))
      (when (and *analyze-deps* (seq uses))
        (check-uses uses env))
      (when *load-macros*
        (load-core)
        (doseq [nsym (vals use-macros)]
