improved error reporting, and integration of ++/-- into it