Two Money values with the same amount and currency are equal. A constructor validates them, so an invalid value cannot exist.