How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
A system of constructor classes: overloading and implicit higher-order polymorphism
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Simplifying and improving qualified types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Encoding types in ML-like languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric Overloading in Polymorphic Programming Languages
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Type Inference for Overloading without Restrictions, Declarations or Annotations
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
CHRv: A Flexible Query Language
FQAS '98 Proceedings of the Third International Conference on Flexible Query Answering Systems
Qualified types: theory and practice (ordering relation)
Qualified types: theory and practice (ordering relation)
A general framework for hindley/milner type systems with constraints
A general framework for hindley/milner type systems with constraints
Interactive type debugging in Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Constraint-set satisfiability for overloading
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Improving type error diagnosis
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic Implication Checking for CHR Constraints
Electronic Notes in Theoretical Computer Science (ENTCS)
CSCLP'05 Proceedings of the 2005 Joint ERCIM/CoLogNET international conference on Constraint Solving and Constraint Logic Programming
The implicit calculus: a new foundation for generic programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Hi-index | 0.00 |
We present a minimal extension of the Hindley/Milner system to allow for overloading of identifiers. Our approach relies on a combination of the HM(X) type system framework with Constraint Handling Rules (CHRs). CHRs are a declarative language for writing incremental constraint solvers. CHRs allow us to precisely describe the relationships among overloaded identifiers. Under some sufficient conditions on the CHRs we achieve decidable type inference and the semantic meaning of programs is unambiguous. Our approach allows us to combine open and closed world overloading. We also show how to deal with overlapping definitions.