preserve precise error locations