List<TR> zipWith<TX, TY, TR>( List<TX> xs, List<TY> ys, TR Function(TX a, TY b) f) { return List.generate(xs.length, (i) => f(xs[i], ys[i]), growable: false); }