docs: public long set(long instant, int year) {
          FieldUtils.verifyValueBounds(this, Math.abs(year),
                                       iChronology.getMinYear(), iChronology.getMaxYear());
          //
          // Do nothing if no real change is requested.
          //
          int thisWeekyear = get( instant );
          if ( thisWeekyear == year ) {
              return instant;
          }
          //
          // Calculate the DayOfWeek (to be preserved).
          //
          int thisDow = iChronology.getDayOfWeek(instant);
          //
          // Calculate the maximum weeks in the target year.
          //
          int weeksInFromYear = iChronology.getWeeksInYear( thisWeekyear );
          int weeksInToYear = iChronology.getWeeksInYear( year );
          int maxOutWeeks = (weeksInToYear < weeksInFromYear) ?
              weeksInToYear : weeksInFromYear;
          //
          // Get the current week of the year. This will be preserved in
          // the output unless it is greater than the maximum possible
          // for the target weekyear.  In that case it is adjusted
          // to the maximum possible.
          //
          int setToWeek = iChronology.getWeekOfWeekyear(instant);
          if ( setToWeek > maxOutWeeks ) {
              setToWeek = maxOutWeeks;
          }
          //
          // Get a wroking copy of the current date-time.
          // This can be a convenience for debugging.
          //
          long workInstant = instant; // Get a copy
          //
          // Attempt to get close to the proper weekyear.
          // Note - we cannot currently call ourself, so we just call
          // set for the year.  This at least gets us close.
          //
          workInstant = iChronology.setYear( workInstant, year );
          //
          // Calculate the weekyear number for the get close to value
          // (which might not be equal to the year just set).
          //
          int workWoyYear = get( workInstant );
  
          //
          // At most we are off by one year, which can be "fixed" by
          // adding/subtracting a week.
          //
          if ( workWoyYear < year ) {
              workInstant += DateTimeConstants.MILLIS_PER_WEEK;
          } else if ( workWoyYear > year ) {
              workInstant -= DateTimeConstants.MILLIS_PER_WEEK;
          }
          //
          // Set the proper week in the current weekyear.
          //
  
          // BEGIN: possible set WeekOfWeekyear logic.
          int currentWoyWeek = iChronology.getWeekOfWeekyear(workInstant);
          // No range check required (we already know it is OK).
          workInstant = workInstant + (setToWeek - currentWoyWeek)
              * (long)DateTimeConstants.MILLIS_PER_WEEK;
          // END: possible set WeekOfWeekyear logic.
  
          //
          // Reset DayOfWeek to previous value.
          //
          // Note: This works fine, but it ideally shouldn't invoke other
          // fields from within a field.
          workInstant = iChronology.dayOfWeek().set( workInstant, thisDow );
          //
          // Return result.
          //
          return workInstant;
      }