Goanna: a novel approach for automated type error debugging
Open Access
- 11 September 2026
- journal article
- research article
- Published by Springer Nature in Automated Software Engineering
- Vol. 33 (4) , 130
Abstract
Statically typed languages offer many advantages in software engineering, including bug prevention, enhanced code quality, and reduced maintenance costs. However, these benefits come at the expense of a steep learning curve and a slower development pace. Although known for its expressive and strong type system, Haskell often frustrates programmers as they learn and use that type system, especially when debugging type errors. We introduce Goanna, a novel type checker for Haskell that focuses on improving error diagnostics. When a type error occurs, Goanna identifies a comprehensive list of possible causes and provides a potential course of action for each. To achieve this, Goanna uses constraint logic programming and Minimal Correction Subsets (MCSes) to support its diagnostics. We evaluated Goanna’s effectiveness on 49,750 Haskell programs, demonstrating its ability to identify root causes with higher accuracy (81.6%) than traditional tools (Helium, 65.5%; GHC, 33.7%). In our benchmark study, Goanna shows performance constraints when diagnosing large programs containing complex errors, but remains responsive enough to provide real-time debugging assistance for small to medium-sized programs.Keywords
Funding Information
- Monash University
This publication has 34 references indexed in Scilit:
- Bugs in large language models generated code: an empirical studyEmpirical Software Engineering, 2025
- Improving Type Error Reporting for Type Classes2022
- Efficient counter-factual type error debuggingScience of Computer Programming, 2020
- MUST: Minimal Unsatisfiable Subsets Enumeration Tool2020
- Constraint Handling Rules - What Else?2015
- Fast, flexible MUS enumerationConstraints, 2015
- On the Portability of Prolog Applications2011
- Algorithms for Computing Minimal Unsatisfiable Subsets of ConstraintsJournal of Automated Reasoning, 2007
- Discovery of Minimal Unsatisfiable Subsets of Constraints Using Hitting Set Dualization2005
- Type error slicing in implicitly typed higher-order languagesScience of Computer Programming, 2004