Core.Compiler.return_type can give imprecise results, it is quite handy from time to time. Today my question is not about its usage, however about why the first argument - the function - is different compared to the rest.
All other arguments are given by type, but the function is given by instance.
Is there an underlying reason for this, or is it just an happenstance and underlying there is its counterpart, which takes everything by type without any drawback.
apply(f, args...; kwargs...) = f(args...; kwargs...) I can get a homogenous version of
return_type(FullTuple) = Core.Compiler.return_type(apply, FullTuple)
The core of my question is more whether this has any known disadvantages, or whether you really should use the function instance instead of the function type.