public IMoney addMoneyBag(MoneyBag s) { return s.addMoney(this); }
public /*this makes no sense*/ void appendTo(MoneyBag m) { m.appendMoney(this); }
public IMoney addMoney(Money m) { if (m.currency().equals(currency())) return new Money(amount() + m.amount(), currency()); return MoneyBag.create(this, m); }