Elm's compiler has some incredibly good error messages: https://elm-lang.org/blog/compilers-as-assistants (contextual, relevant and written for mere mortals!)