a.ts(11,52): error TS2345: Argument of type 'Promise<D> | NonNullable<D>' is not assignable to parameter of type 'D'.
  'D' could be instantiated with an arbitrary type which could be unrelated to 'Promise<D> | NonNullable<D>'.
a.ts(30,15): error TS2322: Type 'string | number | undefined' is not assignable to type 'never'.
  Type 'undefined' is not assignable to type 'never'.
a.ts(33,11): error TS2322: Type 'string | number | undefined' is not assignable to type 'never'.
  Type 'undefined' is not assignable to type 'never'.
