Goals:
- Avoid Rust's Option/Either manual error handling strategy.
- Make exceptions cheaper.
- Avoid error translation between Nim libraries by construction. The new vocabulary type
ErrorCodeis what should be used. Wrappers should translate errors toErrorCode. - Make the error
out of memoryeasier to handle. - Resolve once and for all the "error codes vs exceptions" choice.