Generally speaking, union is not distributive to type params in that sense that we can not resolveSome<A | B | C> as Some<A> | Some<B> | Some<C> however we can do it for Promises. Practically this:
function ping(a: Promise<A>)
function ping(a: Promise<B>)
are equivalent. This, of course, need to be thoroughly investigated.
Generally speaking, union is not distributive to type params in that sense that we can not resolve
Some<A | B | C>
asSome<A> | Some<B> | Some<C>
however we can do it for Promises. Practically this:are equivalent. This, of course, need to be thoroughly investigated.