I hope you don’t mind, but I’d really like to understand this point a little better. Consider this example:
julia> function f(; a=2)
println(typeof(a))
a
end
f (generic function with 1 method)
julia> f()
Int64
2
julia> f(a=2)
Int64
2
These two calls return the same thing, but the first one correctly infers that the return type is Int64, while the second one does not (according to @code_warntype). It seems like if keyword arguments were specialized on, then the compiler should be able to work out the return type in the second case as well.