Differentiate nested invalid values

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