Should something like this be implementing in `Currency`? If you have two `Currency` objects and one of them is `NullCurrency` should they always return true?

e.g.
```
NullCurrency#equals(Currency) # true, see code
Currency#equals(Currency)     # undefined as of now (false because of the $name)
```