Draft: Simplify some error types
This is simply Richard's MR that I am tweaking after rebasing and amending MR 4728 on the main repo.
I have also fixed the Haddock errors.
From a quick test run locally I think there are a few tests that now fails and will need attention.