Explaining Type Errors In Polymorphic Languages MIKE BEAVEN Purdue University and RYAN STANSIFER University of North Texas Strongly-typed languages present programmers with compile-time feedback about the type correctness of programs. Errors during polymorphic type checking take the form of a unification failure for two types. Finding the source of the type error in the code is often difficult because the error may occur far from the spot where the inconsistency is detected. As functional languages use more and more complex type systems, the difficulty of interpreting and locating these errors will increase, To locate the source of type errors the programmer must unravel the long chain of deductions and type instantiation made during type reconstruction. This paper describes an approach that maintains the deductive steps of type inference and the reasons for type instantiation. The approach could be used in an interactive system to guide the programmer to the source of a type error or to explain why the compiler assigned a particular type to an expression. Engineering]: Programming EnvironCategories and Subject Descriptors: D.2.6 [Software Languages]: Language Constructs and Features data types and ments: D.3.3 [Programming structures: F.3.3 [Logics and Meanings of Programs]: Studies of Program Constructed type
/lp/association-for-computing-machinery/explaining-type-errors-in-polymorphic-languages-wDKz22R09h