3 I want things to be able to throw errors - or fail-safe(?)
5 arithmetic can over-flow
6 pointer-dereference probably needs explicit tests
7 arbitrary functions might report an error
9 I need an easy syntax for catching and a simple semantic for
10 when they aren't caught.
12 I could have an 'else' on any simple statement which does error handling
15 Maybe a type that starts '?' can fail to have a value.
21 would not trigger an error, but you need
22 if ?foo: print foo; else print "div by zero"
25 Most operators will let an error fall through if it is expected.
27 If you want details about the error, you need to declare a type that
28 holds a value or an error. You then get the error code with foo.err or whatever