code: public TaiInstant minus(Duration duration) {
          long secsToSubtract = duration.getSeconds();
          int nanosToSubtract = duration.getNano();
          if ((secsToSubtract | nanosToSubtract) == 0) {
              return this;
          }
          long secs = Math.subtractExact(seconds, secsToSubtract);
          long nanoAdjustment = ((long) nanos) - nanosToSubtract;  // safe int+int
          return ofTaiSeconds(secs, nanoAdjustment);
      }
docs: Returns a copy of this instant with the specified duration subtracted.
  <p>
  The duration is subtracted using simple subtraction of the seconds and nanoseconds
  in the duration from the seconds and nanoseconds of this instant.
  As a result, the duration is treated as being measured in TAI compatible seconds
  for the purpose of this method.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param duration  the duration to subtract, not null
  @return a {@code TaiInstant} based on this instant with the duration subtracted, not null
  @throws ArithmeticException if the calculation exceeds the supported range