code: public RoundedMoney with(CurrencyUnit currency) {
          Objects.requireNonNull(currency, "currency required");
          return new RoundedMoney(asType(BigDecimal.class), currency, rounding);
      }
docs: Creates a new Money instance, by just replacing the {@link CurrencyUnit}.
  
  @param currency the currency unit to be replaced, not {@code null}
  @return the new amount with the same numeric value and {@link MathContext}, but the new
  {@link CurrencyUnit}.