fn: (
      [result1, result2]: [T, T2] | [T, undefined] | [undefined, T2],
      index: number,
    ) => T3,