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.