Ah good point. Then we need something like this:
struct MissingSkipper{T}
f::T
end
(s::MissingSkipper)(args...; kwargs...) =
(s.f)(skipmissings.(args)...; kwargs...)
Maybe that was exactly @danielwe’s point and I misunderstood, sorry.
This will have the behavior you want by default, but we can still overload functions on the SkipMissings type if necessary. And if we want we can still overload (s::MissingSkipper{typeof(quantile)})() for example to have quantile? add skipmissing only to the first argument.