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