Generalized algorithmic debugging and testing
ACM Letters on Programming Languages and Systems (LOPLAS)
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Science of Computer Programming
What are principal typings and what are they good for?
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Foundations of programming languages
Foundations of programming languages
Proofs about a folklore let-polymorphic type inference algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Algorithmic Program DeBugging
Principles of Program Analysis
Principles of Program Analysis
Explaining Type Errors by Finding the Source of a Type Conflict
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
Generalising Techniques for Type Debugging
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
A visualisation of polymorphic type checking
Journal of Functional Programming
Concatenate, reverse and map vanish for free
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
How to repair type errors automatically
Trends in functional programming
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
Discriminative sum types locate the source of type errors
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Dependency-style generic haskell
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Improving type error diagnosis
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Information and Computation
Jifclipse: development tools for security-typed languages
Proceedings of the 2007 workshop on Programming languages and analysis for security
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
Information and Computation
Journal of Visual Languages and Computing
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
A type system equivalent to a model checker
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Explaining ML type errors by data flows
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Polymorphic type reconstruction using type equations
IFL'03 Proceedings of the 15th international conference on Implementation of Functional 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
Scalad: an interactive type-level debugger
Proceedings of the 4th Workshop on Scala
Counter-factual typing for debugging type errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
The type systems of most typed functional programming languages arebased on the Hindley-Milner type system. A practical problem withthese type systems is that it is often hard to understand why aprogram is not type correct or a function does not have theintended type. We suggest that at the core of this problem is thedifficulty of explaining why a given expression has a certain type.The type system is not defined compositionally. We propose toexplain types using a variant of the Hindley-Milner type systemthat defines a compositional type explanation graph of principaltyping. We describe how the programmer understands types byinteractive navigation through the explanation graph. Furthermore,the explanation graph can be the foundation for algorithmicdebugging of type errors, that is, semi-automatic localisation ofthe source of a type error without even having to understand thetype inference steps. We implemented a prototype of a tool toexplore the usefulness of the proposed methods.