Rust's error messages can refer to multiple parts of code, and include increasing amounts of prose: https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html looks promising!