Neander has no exceptions. No try, no catch, no finally. A call to one of the host application's APIs returns something closer to Rust's Result: either the answer, or the reason there is no answer. In place of a catch block there is one type marker, three operators, and a guarantee that every submission comes back in the same shape no matter what happened.
Last time the foundational series closed with isolation. This is the first of two encores, and it takes the subject that came up in nearly every entry without ever being laid out in full: what happens when something goes wrong.
There are two answers, because there are two audiences. An error is a value while the program runs, and a verdict once it has stopped. The two are made of the same parts, on purpose.
The failable type
Every call returns a failable type, written T!. It carries either a value of type T or an error with a code, a message, and the name of the function that produced it.






