public <R> Tuple4<T1, T2, R, T4> mapT3(Function<T3, R> mapper) {
		return new Tuple4<>(t1, t2, mapper.apply(t3), t4);
	}
public <R> Tuple4<T1, T2, R, T4> mapT3(Function<T3, R> mapper) {
		return new Tuple4<>(t1, t2, mapper.apply(t3), t4);
	}
public < R > Tuple4 < T1 , T2 , R , T4 > mapT3 ( Function < T3 , R > mapper ) { return new Tuple4 <> ( t1 , t2 , mapper . apply ( t3 ) , t4 ) ; }
Map the 3rd part (T3) of this {@link Tuple4} into a different value and type,
keeping the other parts.

@param mapper the mapping {@link Function} for the T3 part
@param <R> the new type for the T3 part
@return a new {@link Tuple4} with a different T3 value
Map the 3rd part ( T3 ) of this { @link Tuple4 } into a different value and type keeping the other parts .