Minimize reader side-effects; improve error messages