             args)))
 
 (defmethod print-method SCUGen [ug w]
-  (.write w (str "#<sc-ugen: " (:name ug) " with " (count-ugen-args ug) " internal sc-ugens>")))
+  (.write w (str "#<sc-ugen: " (overtone-ugen-name (:name ug)) (:rate-name ug) " [" (count-ugen-args ug) "]>")))
 
 (defrecord ControlProxy [name value rate rate-name])
 (derive ControlProxy ::sc-ugen)

(defn sc-ugen? [obj] (isa? (type obj) ::sc-ugen))

(defn sc-ugen
  "Create a new SCUGen instance"
  [id name rate rate-name special args n-outputs]
  (SCUGen. id name rate rate-name special args n-outputs))

(defn count-ugen-args
  "Count the number of ugens in the args of ug (and their args recursively)"

(ns overtone.sc.ugen.sc-ugen
  (:use [overtone util]
        [overtone.sc.ugen defaults]))

(defrecord SCUGen [id name rate rate-name special args n-outputs])
(derive SCUGen ::sc-ugen)
