 
 (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

   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!"))))))


(defmacro def-
  "Private version of def"
  [& exprs]
  `(defvar- ~@exprs))

(defmacro in-other-ns
  "Takes a namespace name and an expression that will be run
