One order leads to generic function with 2 methods:
julia> struct A end; struct B end
julia> function f(::A) end
f (generic function with 1 method)
julia> function f(::A) end
f (generic function with 1 method)
julia> function f(::B) end
f (generic function with 2 methods)
julia> function f(::B) end
f (generic function with 2 methods)
Another order leads to generic function with 4 methods:
julia> struct A end; struct B end
julia> function f(::A) end
f (generic function with 1 method)
julia> function f(::B) end
f (generic function with 2 methods)
julia> function f(::A) end
f (generic function with 3 methods)
julia> function f(::B) end
f (generic function with 4 methods)
xref #53814
One order leads to
generic function with 2 methods:Another order leads to
generic function with 4 methods:xref #53814