So if I want to call promote() on the elements of the array, leaving missing values alone, would calling Base._promote()[1] be the recommended way, or rather an explicit implementation like
my_promote(x::T, y::S) where {T,S} = begin
R = promote_type(T, S)
return convert(R, x)
end