                (doseq [param params]
                  (emit param)
                  (when-not (= param (last params)) (emits ",")))
-               (emits "){")
+               (emits " interface{}){")
                (when recurs (emitln "for {"))
                (emits expr)
                (when recurs


               (emitln "var " mname " = func (" (comma-sep
                                                 (if variadic
                                                   (concat (butlast params) ['var_args])
                                                   params)) "){")
               (when type
                 (emitln "var self__ = this"))
               (when variadic
                 (emits "var ")
                 (emit (last params))
                 (emits " = nil")
                 (emitln "if (len(arguments) > " (dec (count params)) ") {")
                 (emits "  ")
                 (emit (last params))
                 (emits " = cljs.core.array_seq(arguments[: " (dec (count params)) "],0);")
                 (emitln "} "))
               (emits "return " delegate-name "(this,")
               (doseq [param params]

              (emit-variadic-fn-method meth)
              (emit-fn-method meth))
            (emitln))
            (emitln mname " = func(" (comma-sep
                                      (if variadic
                                        (butlast params)
                                        params)) " interface{}," (when variadic ", arguments ...interface{}") "){")
          (when variadic
            (emits "var ")
            (emit (last maxparams))
