@class Money; @class MoneyBag; @protocol IMoney - (id)add:(id)money; - (id)addMoney:(Money *)money; - (id)addMoneyBag:(MoneyBag *)bag; - (BOOL)isZero; - (id)multiply:(int)factor; - (id)negate; - (id)subtract:(id)money; @end