     arglist
     (let [[a b] (split-with #(not= '& %) arglist)]
       (if (not-empty b)
-        `(vec (list* ~@(map dissect-arglist a)
-                     ~(dissect-arglist (second b))))
+        (vec (concat (map dissect-arglist a) (list (with-meta (second b) {:tag "[Ljava.lang.Object;"}))))
         (vec (map dissect-arglist arglist))))))
 
 (defn- function-signatures

                         Lattice conexp.fca.lattices.Lattice
                         Context conexp.fca.contexts.Context
                         tag))))]
    (if-not arglists
      nil
      (for [arglist arglists]
        [new-name
         (vec (map tag (dissect-arglist arglist)))
         return]))))

(defn- generate-definition
  "Generates function definition with name new-name, calling orig-name

  (when (not-empty arglists)
    `(defn ~(symbol (str prefix new-name))
       ~@(for [args arglists]
           `(~(dissect-arglist args)
             (apply ~(symbol orig-name) ~(dissect-arglist args)))))))

;;;

