straightened and simplified error handling all over the place
In the beginning I wasn't sure if I perhaps should make errors return a value (e.g. undef, or an error object of some kind) or let it throw an exception. it was the latter then, but there were many remains of the former ("return error(...") everywhere. That didn't matter a lot, but over the time had become a nuisance. And then there were notions of catching and somehow acting on the error before passing it on that were unneeded in between or simply wrong. All these have been straightened, and errors are now caught only in places where things must be restored to a previous state (let, labels, eval_form) or where a traceback shall be printed.
Showing with 38 additions and 63 deletions