code: func (a *int64Amount) Add(b int64Amount) bool {
  	switch {
  	case b.value == 0:
  		return true
  	case a.value == 0:
  		a.value = b.value
  		a.scale = b.scale
  		return true
  	case a.scale == b.scale:
  		c, ok := int64Add(a.value, b.value)
  		if !ok {
  			return false
  		}
  		a.value = c
  	case a.scale > b.scale:
  		c, ok := positiveScaleInt64(a.value, a.scale-b.scale)
  		if !ok {
  			return false
  		}
  		c, ok = int64Add(c, b.value)
  		if !ok {
  			return false
  		}
  		a.scale = b.scale
  		a.value = c
  	default:
  		c, ok := positiveScaleInt64(b.value, b.scale-a.scale)
  		if !ok {
  			return false
  		}
  		c, ok = int64Add(a.value, c)
  		if !ok {
  			return false
  		}
  		a.value = c
  	}
  	return true
  }
docs: // Add adds two int64Amounts together, matching scales. It will return false and not mutate
  // a if overflow or underflow would result.