                                                      (name '~source)
                                                      %))))
          #'~alias)))
+
+(defmacro defalias-macro
+  [alias source]
+  (defalias-macro* alias source))
 
 (defn ns-unmap-all
   [ns']

                         (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)
                                                   %))))))

(defn defalias-macro*
  [alias source]
  (let [body-sym (gensym "body")
        qualified-source (qualify-sym *ns* source)
