* 
   * @param newYear the year to represent, validated from MIN_YEAR to MAX_YEAR
   * @param newMonth the month-of-year to represent, validated not null
   * @return the year-month, not null
   */
  private YearMonth with(int newYear, int newMonth) {

    if (this.year == newYear && this.month == newMonth) {
      return this;
    }
    return new YearMonth(newYear, newMonth);
  }