explain why divergent error codes are allowed
@anarcat points out that divergent error codes might be bad:
This sounds like a bad idea. I interpret that as meaning that I can return an error code 2 instead of error code 3 if i fancy. If we're going to pick numbers, we should either enforce them or not, but don't dance around the issue and encourage people to diverge from the spec.
Either we should explain them or forbid them.
I think that forbidding them will be hard, as there are many ways that things can fail (e.g. segfaults) that implementers cannot control.