 
 (defmacro def-
   "Private version of def"
-  [name & exprs]
-  `(do
-     (def ~name ~@exprs)
-     (alter-meta! (var ~name) conj {:private true})))
+  [& exprs]
+  `(defvar- ~@exprs))
 
 (defmacro in-other-ns
   "Takes a namespace name and an expression that will be run

   by default."
  [name]
  (let [ name-str (str name) ]
    `(defonce ~name (fn [& ignore#] (illegal-argument (str ~name-str 
                                                        " is a declared multimethod, "
                                                        "but was never inherited!"))))))


(ns conexp.util.multimethods
  (:use [clojure.contrib.string :only (join replace-first-re)]
    clojure.contrib.def
    conexp.util))

;;; since in the recent version, type doens't work with keywords anymore, but
