 (def ugen-collide-ns-str "overtone.sc.ugen-collide")
 (defonce ugen-collide-ns (create-ns (symbol ugen-collide-ns-str)))
 (defonce overloaded-ugens* (atom {}))
-
+(defonce special-op-specs* (atom {}))
 
 (defn- op-rate
   "Lookup the rate of an input ugen, otherwise use IR because the operand

       (def-binary-op to-ns op-name special))))

(defmacro with-overloaded-ugens
  [& body]
  (let [bindings (flatten (map (fn [[orig overload]]
                                 [orig (symbol ugen-collide-ns-str (str overload))])

                      (:fn-names spec))]
    (doseq [[ugen-name ugen-fn] ugen-fns]
      (intern to-ns ugen-name ugen-fn))))

(defn- def-unary-op
  "def a unary op ugen (this is handled separately due to the fact that the
