How many levels of `Promise` does `Unwrap` strip, and what is `R`?type Unwrap<T> = T extends Promise<infer U> ? U : T; type R = Unwrap<Promise<Promise<number>>>;