A showstopper for embedded domain specific languages (a marvellous idea in and of itself) in a strongly typed setting (think Haskell) is that when the program contains a type error, type error diagnosis is communicated to the domain programmer in terms of the host language, not the domain. A potential solution for this problem was already formulated in 2003, but only for Haskell 98, in a time in which GADTs and type families and various other powerful type system features did not exist, or at the very least were not well-accepted. But by now everyone uses either these extensions, or libraries that do. In the talk we discuss at a suitably high-level the essential ideas of the 2003 solution, recent work on generalizing this work to account for Haskell’s modernized type system, and how our work may affect the design of strongly typed functional languages.
Dr. Jurriaan Hage is an assistant professor at Utrecht University. His work in programming technology is largely focused on two aspects: the optimisation of functional languages by means of type and effect systems, and type error diagnosis for strongly typed functional languages. He is currently the lead maintainer of the Helium compiler for learning Haskell. Besides these two focus areas, he is also active in programming plagiarism detection, legacy system modernization, and the (soft type) analysis of dynamic languages.