How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Science of Computer Programming
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Finding the source of type errors
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Algorithmic Program DeBugging
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Generalising Techniques for Type Debugging
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
Selected Papers from Constraint Programming: Basics and Trends
Finding all minimal unsatisfiable subsets
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A general framework for hindley/milner type systems with constraints
A general framework for hindley/milner type systems with constraints
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
Improving type error diagnosis
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Seminal: searching for ML type-error messages
Proceedings of the 2006 workshop on ML
Searching for type-error messages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Language-Based Program Verification via Expressive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Hm(x) type inference is clp(x) solving
Journal of Functional Programming
Heuristics for type error discovery and recovery
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Type processing by constraint reasoning
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
Improving type error messages for generic Java
Higher-Order and Symbolic Computation
Towards efficient MUS extraction
AI Communications - 18th RCRA International Workshop on “Experimental evaluation of algorithms for solving problems with combinatorial explosion”
Security type error diagnosis for higher-order, polymorphic languages
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Counter-factual typing for debugging type errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.01 |
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.