Differentiate nested invalid values

Fixes #36.

- [x] Add tests.
- [x] Add documentation.
- [x] Give `f` a better name.
- [x] Solidify symbolic error name and translated error message.