                  bus->id
                  appender
                  auto-rater
+                 nil-arg-checker
                  rate-checker
                  bespoke-checker)))))
 

                                      (get arg :mode :standard)))]
                  (assoc arg :expands? expands?)))
              (:args spec))))

(defn- with-init-fn
  "Creates the final argument initialization function which is applied to

      (assoc ugen :n-outputs (count (flatten [(first n-outs-arg)])))
      ugen)))

;;TODO check to see if this can be removed. Args can not take keywords as vals
(defn- map-ugen-args
  "Perform argument mappings for ugen args that take a keyword but need to be
  looked up in a map supplied in the spec. (e.g. envelope actions)"
