private static void CheckCurrencies(Amount lhs, Amount rhs)
 {
     if (lhs.currency != rhs.currency)
     throw new Exception("incompatible currencies");
 }
 protected bool Equals(Amount other)
 {
     return amount.Equals(other.amount) && currency == other.currency;
 }