 
 
 (defn munge-symbol
-  "Stub subject to change based on what TANAL permits, the issue is
-  going to be symbol vs. var type in the AST. Munging vars is gonna be
-  a bitch, munging symbols could happen."
-  [sym arity vardic]
+  [sym arity variadic]
   (symbol
    (str sym "$arity$"
-        (if vardic
+        (if variadic
           (- arity 2)
           arity)
-        (when vardic
+        (when variadic
           "+"))))
+
+
+(defn method-variadic?
+  [method]
+  (if (list? method)
+    (some (partial = '&) (first method))
+    (if (map? method)
+      (or (:variadic? method)
+          (some :variadic?
+                (:params method))))))
 
 
 (defn munge-fn-name

                              methods
                              promotes)))]

      (reset! prefix-forms-atom
              (if name
                (cons fdecl promotes)

                               :when (not (= p '&))]
                           (gensym "OX__P"))

        variadic?          (some (partial = '&) params)

        new-form         (if variadic?
                           (list (vec (concat (butlast new-params) ['&] [(last new-params)]))
                                 (concat (list 'apply)
                                         (list (pattern/def->symbol promoted-method))
