Foundations of deductive databases and logic programming
Unification under a mixed prefix
Journal of Symbolic Computation
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Putting type annotations to work
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type Classes with Functional Dependencies
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
Structural Subtyping of Non-Recursive Types is Decidable
LICS '03 Proceedings of the 18th Annual IEEE Symposium on Logic in Computer Science
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
ACM Transactions on Programming Languages and Systems (TOPLAS)
Understanding functional dependencies via constraint handling rules
Journal of Functional Programming
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Complete and decidable type inference for GADTs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Analysing graph transformation systems through constraint handling rules
Theory and Practice of Logic Programming
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
Hi-index | 0.00 |
We observe that the combination of multi-parameter type classes with existential types and type annotations leads to a loss of principal types and undecidability of type inference. This may be a surprising fact for users of these popular features. We conduct a concise investigation of the problem and are able to give a type inference procedure which, if successful, computes principal types under the conditions imposed by the Glasgow Haskell Compiler (GHC). Our results provide new insights on how to perform type inference for advanced type extensions.