Adding AbstractCurrency implementation from chapter 20.
I wanted to play around with the path-dependent type in the 'from'
method.