There seems to be a typo at the beginning of the "Implementing dual numbers" section. It says:
The number a+bd can be encoded as...
Should be: The number a+b*epsilon can be encoded as...