> and the ability to bubble up errors from functions that call fallible functions from 2 different libraries without writing your own huge struct definition every time.
Please, no exceptions. No exceptions.
There was a language featured on HN recently that did a good job of making it trivial to build sum types for results/errors from disparate other sum types for results/errors. It can be made easy while retaining the idea of using a sum type for results.