Error ergonomics

As an aside, this seems relevant: Pre-RFC: Catching Functions