Compilers for strongly typed languages like Haskell, Java, Elm, and Scala will check that compiled programs are type correct. If a program is type incorrect, a type error message will be provided. We address the problem that these errors can be hard to understand or misleading, especially for novice programmers. Moreover, languages in which we can embed domain-specific languages, such as Haskell, the type error messages are not phrased in terms of the domain.
For Haskell work in this area had led to the implementation of the Helium compiler for novice programmers