     (when (seq use-macros)
       (check-use-macros use-macros env))
     (swap! env/*compiler* update-in [::namespaces name] assoc
-           :name name
-           :doc docstring
-           :excludes excludes
-           :uses uses
-           :requires requires
-           :use-macros use-macros
-           :require-macros require-macros
-           :imports imports)
+      :name name
+      :doc docstring
+      :excludes excludes
+      :uses uses
+      :requires requires
+      :use-macros use-macros
+      :require-macros require-macros
+      :imports imports)
     {:env env :op :ns :form form :name name :doc docstring :uses uses :requires requires :imports imports
      :use-macros use-macros :require-macros require-macros :excludes excludes}))
 

               (nil? (.findInternedVar ^clojure.lang.Namespace (find-ns lib) sym)))
      (warning :undeclared-ns env {:type :macro :lib lib :sym sym}))))

(defmethod parse 'ns
  [_ env [_ name & args :as form] _]
  (when-not (symbol? name) 

        args      (if docstring (next args) args)
        metadata  (if (map? (first args)) (first args))
        args      (if metadata (next args) args)
        excludes  (parse-ns-excludes env args)
        deps      (atom #{})
        aliases   (atom {:fns #{} :macros #{}})
        spec-parsers {:require        (partial parse-require-spec env false deps aliases)
                      :require-macros (partial parse-require-spec env true deps aliases)
                      :use            (comp (partial parse-require-spec env false deps aliases)
                                            (partial use->require env))
                      :use-macros     (comp (partial parse-require-spec env true deps aliases)
                                            (partial use->require env))
                      :import         (partial parse-import-spec env deps)}
        valid-forms (atom #{:use :use-macros :require :require-macros :import})
        {uses :use requires :require use-macros :use-macros require-macros :require-macros imports :import :as params}
        (reduce (fn [m [k & libs]]
                  (when-not (#{:use :use-macros :require :require-macros :import} k)
