Why don't these errors have expected/actual? Surely we could leverage that to give more descriptive error messages to the user.