code: public <NL, NR> @NonNull Pair<NL, NR> map(final @NonNull Function<? super L, ? extends NL> left, final @NonNull Function<? super R, ? extends NR> right) {
      return new Pair<>(left.apply(this.left), right.apply(this.right));
    }
docs: Map the left and right value of this pair.
  
  @param left the left value function
  @param right the right value function
  @param <NL> the left type
  @param <NR> the right type
  @return a new pair