Proceedings Article10.1145/871895.871903
Interactive type debugging in Haskell
Peter J. Stuckey,Martin Sulzmann,Jeremy Wazny +2 more
- 28 Aug 2003
- pp 72-83
TL;DR: This paper illustrates the facilities for type debugging of Haskell programs in the Chameleon programming environment with reasoning about constraint satisfiability and implication to find minimal justifications of type errors, and to explain unexpected types that arise.
read more
Abstract: In this paper we illustrate the facilities for type debugging of Haskell programs in the Chameleon programming environment. Chameleon provides an extension to Haskell supporting advanced and programmable type extensions. Chameleon maps the typing problem for a program to a system of constraints each attached to program code that generates the constraints. We use reasoning about constraint satisfiability and implication to find minimal justifications of type errors, and to explain unexpected types that arise. Through an interactive process akin to declarative debugging, a user can track down exactly where a type error occurs. The approach handles Hindley/Milner types with Haskell-style overloading. The Chameleon system provides a full implementation of our flexible type debugging scheme which can be used as a front-end to any existing Haskell system.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
Operational semantics and confluence of constraint propagation Rules
TL;DR: In this paper, a sufficient and necessary condition for confluence of terminating simplification rules was given inspired by results about conditional term rewriting systems, and a more refined operational semantics for constraint handling rules was presented.
126
Counter-factual typing for debugging type errors
Sheng Chen,Martin Erwig +1 more
- 08 Jan 2014
TL;DR: 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.
68
Heuristics for type error discovery and recovery
Jurriaan Hage,Bastiaan Heeren +1 more
- 04 Sep 2006
TL;DR: This work forms type inference as a constraint problem, and analyzes the collected constraints to improve the error messages and, as a result, programming efficiency.
Improving type error diagnosis
Peter J. Stuckey,Martin Sulzmann,Jeremy Wazny +2 more
- 22 Sep 2004
TL;DR: This work builds upon the previous work where the idea of discovering type errors by translating the typing problem into a constraint problem and looking for minimal unsatisfiable subsets of constraints was introduced, and presents methods for providing improved subsumption and ambiguity error reporting.
51
Seminal: searching for ML type-error messages
TL;DR: This paper presents a new way to generate type-error messages in a polymorphic, implicitly, and strongly typed language (specifically Caml), and separates error-message generation from type-checking by taking a fundamentally new approach.
33
References
A theory of type polymorphism in programming
TL;DR: This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline.
2.6K
•Book
Algorithmic Program Debugging
Ehud Shapiro
- 14 Apr 1983
TL;DR: An algorithm that can fix a bug that has been identified, and integrate it with the diagnosis algorithms to form an interactive debugging system that can debug programs that are too complex for the Model Inference System to synthesize.
1.2K
Finding the source of type errors
Mitchell Wand
- 01 Jan 1986
TL;DR: An algorithm is described which appears to be quite helpful in isolating and explaining the source of type errors by keeping track of the reasons the type-checker makes deductions about the types of variables.
152
Operational Semantics and Confluence of Constraint Propagation Rules
Slim Abdennadher
- 29 Oct 1997
TL;DR: This paper presents for the first time an operational semantics for CHR that avoids the termination problem with propagation rules based on the more refined operational semantics.
143
Type error slicing in implicitly typed higher-order languages
Christian Haack,Joseph Brian Wells +1 more
- 01 Mar 2004
TL;DR: This work presents a new approach that identifies the location of a type error as a set of program points (a slice) all of which are necessary for the type error.
Related Papers (5)
Christian Haack,Joseph Brian Wells +1 more
- 01 Mar 2004
Mitchell Wand
- 01 Jan 1986
Luis Damas,Robin Milner +1 more
- 25 Jan 1982