$k + $v]; yield [[0, 4, 16], [1, 2, 3], fn (int $k, int $v): int => $k * (2 ** $v)]; yield [['1', '3', '5'], [1, 2, 3], fn (int $k, int $v): string => (string) ($k + $v)]; yield [[], [], fn (int $k, int $v): string => (string) ($k + $v)]; yield [[], Iter\Iterator::create([]), fn (int $k, int $v): string => (string) ($k + $v)]; yield [['1', '3'], Iter\Iterator::create([1, 2]), fn (int $k, int $v): string => (string) ($k + $v)]; } }