Use (var) instead #' in macros, the former is discouraged

diff --git a/src/clojure/contrib/def/def.clj b/src/clojure/contrib/def/def.clj
--- a/src/clojure/contrib/def/def.clj
+++ b/src/clojure/contrib/def/def.clj
@@ -67,9 +67,9 @@
   optionally :doc which are those of new var."
   ([name orig]
      `(let [v# (def ~name ~orig)]
-        (. v# (setMeta (merge (meta #'~orig) (meta #'~name))))
+        (. v# (setMeta (merge (meta (var ~orig)) (meta (var ~name)))))
         v#))
   ([name orig doc]
      `(let [v# (def ~name ~orig)]
-        (. v# (setMeta (merge (meta #'~orig) (assoc (meta #'~name) :doc ~doc))))
+        (. v# (setMeta (merge (meta (var ~orig)) (assoc (meta (var ~name)) :doc ~doc))))
         v#)))
diff --git a/src/clojure/contrib/pred/pred.clj b/src/clojure/contrib/pred/pred.clj
--- a/src/clojure/contrib/pred/pred.clj
+++ b/src/clojure/contrib/pred/pred.clj
@@ -62,7 +62,7 @@
   same name can be resolved and has its :macro metadata
   set"
   [x]
-  `(and (fn? ~x) (boolean (:macro ^#'~x))))
+  `(and (fn? ~x) (boolean (:macro (meta (var ~x))))))
 
 ;; integer?
 ;; even?
