> Also note that `Return<User>` should be just `User` if you prefer to specify the return type explicitly.
No? first_user = data[0] assigns User | undefined to first_user, since the list isn't guaranteed to be non-empty. I expect Return to be implemented as type Return<T> = T | undefined, so Return<User> makes sense.