code: public BigMoney minus(Iterable<? extends BigMoneyProvider> moniesToSubtract) {
          BigDecimal total = amount;
          for (BigMoneyProvider moneyProvider : moniesToSubtract) {
              BigMoney money = checkCurrencyEqual(moneyProvider);
              total = total.subtract(money.amount);
          }
          return with(total);
      }
docs: Returns a copy of this monetary value with a collection of monetary amounts subtracted.
  <p>
  This subtracts the specified amounts from this monetary amount, returning a new object.
  The amounts are subtracted one by one as though using {@link #minus(BigMoneyProvider)}.
  The amounts must be in the same currency.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param moniesToSubtract  the monetary values to subtract, no null elements, not null
  @return the new instance with the input amounts subtracted, never null
  @throws CurrencyMismatchException if the currencies differ