|
|
|
|
|
by elcritch
604 days ago
|
|
My belief is that errors should be handled using effect systems. So in the signature but not muddying the actual return types. Useful effect systems allow the end user to decide where and when to have the compiler enforce errors are handled. Nim has had an effect system for a while but became much more useful when `forbids: [IOError]` was added. It makes it easy to ensure certain type of errors are handled at specific points. More languages should embrace effect systems. Ocaml's is even used to implement multithreading support, albeit effect systems vary widely in design and theory. |
|
But errors-as-values are all the rage today. But modifying types, especially every type in the chain, is annoying and overly manual IMO.