Simplifying and improving qualified types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Finding the source of type errors
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A maximum-flow approach to anomaly isolation in unification-based incremental type inference
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
How to Repair Type Errors Automatically
SFP '01 Selected papers from the 3rd Scottish Functional Programming Workshop (SFP01)
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Interactive type debugging in Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Scripting the type inference process
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
Heuristics for type error discovery and recovery
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Instance chains: type class programming without overlapping instances
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Type processing by constraint reasoning
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
The goal of this paper is to improve the type error messages in the presence of Haskell 98 type classes, in particular for the non-expert user. As a language feature, type classes are very pervasive, and strongly influence what is reported and when, even in relatively simple programs. We propose four type class directives, and specialized type rules, to lend high-level support to compilers to improve the type error messages. Both have been implemented, and can be used to easily modify the behavior of the type inference process.