                                                    (name '~source)
                                                    %))))))
 
-(defmacro defalias-macro
+(defn defalias-macro*
   [alias source]
   (let [body-sym (gensym "body")
         qualified-source (qualify-sym *ns* source)

                         (ns-resolve *ns*)
                         meta)
        arglists (:arglists source-meta)
        forms (map (fn [args]
                     `(~args
                       (clojure.core/seq
                        (clojure.core/concat
                         (clojure.core/list '~qualified-source)
                         ~args))))
                   arglists)]
    `(do (defmacro ~alias ~@forms)
         (alter-meta! #'~alias merge

                                                     (name '~source)
                                                     %))))
         #'~alias)))

(defmacro defalias-macro
  [alias source]
  (defalias-macro* alias source))

(defn ns-unmap-all
  [ns']
