       ~@body)))
 
 (defn combined-specs
+  "Return a combination of ugen specs and the auto-generated special-op specs."
   []
   (merge UGEN-SPECS @special-op-specs*))

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

(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
