Finding the source of type errors

  title={Finding the source of type errors},
  author={Mitchell Wand},
  booktitle={ACM-SIGACT Symposium on Principles of Programming Languages},
  • M. Wand
  • Published in
    ACM-SIGACT Symposium on…
  • Computer Science
It is a truism that most bugs are detected only at a great distance from their source. Although polymorphic type-checking systems like those in ML help greatly by detecting potential run-time type errors at compile-time, such systems are still not very helpful for locating the source of a type error. Typically, an error is reported only when the type-checker can proceed no further, even though the programmer's actual error may have occurred much earlier in the text. We describe an algorithm… 

Counter-factual typing for debugging type errors

This work presents an approach to the problem of type debugging that is based on generating and filtering a comprehensive set of type-change suggestions and finds that it outperforms other approaches and provides a viable alternative.

Why that expression has this type, and how it got it

This paper describes an approach that maintains the deductive steps of type inference and the reasons for type instantiations and describes two functions that answer the question why that expression has this type and how it got it.

General Type Error Diagnostics Using MaxSMT

The goal of this work is to provide high quality type error diagnostics that can help speed up the software development process.

Refining the Delta Debugging of Type Errors

This paper introduces a new algorithm that replaces the previous pre-processing of parse errors with on-request handling, and implemented and evaluated it for Haskell and OCaml programs to demonstrate that it is language agnostic.

Typeview: A Tool for Understanding Type Errors

An interactive tool is implemented that allows programmers to browse through the source code of their program and query the types of each expression to help finding the origin of type errors without detailed knowledge of type inference on the user side.

Debugging Type Errors (Full version)

It is argued that an extended type definition, which assigns types to open expressions as well as closed expressions, can serve as the basis for a programming environment that helps programmers debug type errors.

Precise explanation of success typing errors

The analysis that infers success typings, with infrastructure that maintains additional information that can be used to provide precise (i.e., minimal) explanations about the cause of a discrepancy reported by Dialyzer using program slicing is extended.

Enumerating Counter-Factual Type Error Messages with an Existing Type Checker

A method is presented that uses a standard type checker to enumerate locations that potentially cause the type error, each with an actual and a counter-factual type for the given location.

Type debugging with counter-factual type error messages using an existing type checker

A new solution is proposed that provides counter-factual type error messages; these messages state what types specific subexpressions in a program should have (in contrast to the types they actually have) to remove a type error.

Systematic identification and communication of type errors*

Counter-factual typing is developed, which finds a comprehensive set of error causes in AST leaves, computes an informative message on how to get rid of the type error for each error cause, and ranks all messages and iteratively presents the message for the most likely error cause.



A Theory of Type Polymorphism in Programming

  • R. Milner
  • Computer Science
    J. Comput. Syst. Sci.
  • 1978

A Metalanguage for interactive proof in LCF

The features of ML which are of general interest in language design quite independently of its use for machine assistd formal pxcof are illustrated to illustrate ML applied to PPA, in encoding interesting prcof -finding-andperfonning procedures and to convey a methodology for controlled semiautomatic proof.

A semantic prototyping system

  • M. Wand
  • Computer Science
    SIGPLAN '84
  • 1984
The design of the system, its implementation, and its use are discussed, which allows the system to use concrete syntax rather than the often cumbersome abstract syntax for its programs.

A Metal~mguage hit Interactive Proof in LCFA Theory of Type Polymorphism in Progrgmmfing

  • Proc. 5th A'n,r~v, ai ACM Syrnp. on Principles of Pro!;rarnmirLq Lang Cornp. U Sys. Sci. 17 (t978)
  • 1978

q@BULLET'he Sharing of Structure in Theorem-Proviag Programs

  • q@BULLET'he Sharing of Structure in Theorem-Proviag Programs
  • 1972