code: public BigMoney plus(BigMoneyProvider moneyToAdd) {
          BigMoney toAdd = checkCurrencyEqual(moneyToAdd);
          return plus(toAdd.getAmount());
      }
docs: Returns a copy of this monetary value with the amount added.
  <p>
  This adds the specified amount to this monetary amount, returning a new object.
  The amount added must be in the same currency.
  <p>
  No precision is lost in the result.
  The scale of the result will be the maximum of the two scales.
  For example, 'USD 25.95' plus 'USD 3.021' gives 'USD 28.971'.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param moneyToAdd  the monetary value to add, not null
  @return the new instance with the input amount added, never null
  @throws CurrencyMismatchException if the currencies differ