zip

inline fun <A, R> zip(a: A?, fn: (A) -> R): R?
inline fun <A, B, R> zip(    a: A?,     b: B?,     fn: (A, B) -> R): R?
inline fun <A, B, C, R> zip(    a: A?,     b: B?,     c: C?,     fn: (A, B, C) -> R): R?
inline fun <A, B, C, D, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     fn: (A, B, C, D) -> R): R?
inline fun <A, B, C, D, E, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     fn: (A, B, C, D, E) -> R): R?
inline fun <A, B, C, D, E, F, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     f: F?,     fn: (A, B, C, D, E, F) -> R): R?
inline fun <A, B, C, D, E, F, G, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     f: F?,     g: G?,     fn: (A, B, C, D, E, F, G) -> R): R?
inline fun <A, B, C, D, E, F, G, H, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     f: F?,     g: G?,     h: H?,     fn: (A, B, C, D, E, F, G, H) -> R): R?
inline fun <A, B, C, D, E, F, G, H, I, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     f: F?,     g: G?,     h: H?,     i: I?,     fn: (A, B, C, D, E, F, G, H, I) -> R): R?
inline fun <A, B, C, D, E, F, G, H, I, J, R> zip(    a: A?,     b: B?,     c: C?,     d: D?,     e: E?,     f: F?,     g: G?,     h: H?,     i: I?,     j: J?,     fn: (A, B, C, D, E, F, G, H, I, J) -> R): R?