Okay, perfect, that answered my question! I thought that at least one of the vararg arguments is mandatory. A philosophical thought: isn't this use-case kind of dangerous when overloading Base functions in packages? In my case, MultiPoly and Lazy both overload Base.+ with a varargs function (like the one above).
On Wednesday, April 20, 2016 at 4:30:49 PM UTC+2, Robert Gates wrote: > > I was wondering how this can happen: > > *julia> **type T1; end* > > > *julia> **type T2; end* > > > *julia> **f(a::T1...) = ()* > > *f (generic function with 1 method)* > > > *julia> **f(a::T2...) = ()* > > WARNING: New definition > > f(Main.T2...) at none:1 > > is ambiguous with: > > f(Main.T1...) at none:1. > > To fix, define > > f() > > before the new definition. > > *f (generic function with 2 methods)* > > This is a fresh julia 0.4.5 session. I actually encountered this when > using two packages and then built this MWE. > >
