Allows for more descriptive error messages and also doesn't hide control-path exit returns from the reader.