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 '90 Proceedings of the 1990 ACM conference on LISP and functional programming
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
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Open and closed scopes for constrained genericity
Theoretical Computer Science
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
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
Journal of Functional Programming
Type-checking multi-parameter type classes
Journal of Functional Programming
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Polymorphic algebraic data type reconstruction
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Extracting programs from type class proofs
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Strong types for relational databases
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Modular generic programming with extensible superclasses
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Understanding functional dependencies via constraint handling rules
Journal of Functional Programming
Aspect-oriented programming with type classes
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Language-Based Program Verification via Expressive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Google's MapReduce programming model — Revisited
Science of Computer Programming
Google's MapReduce programming model – Revisited
Science of Computer Programming
Hm(x) type inference is clp(x) solving
Journal of Functional Programming
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A foundation for flow-based program matching: using temporal logic and model checking
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 3rd workshop on Programming languages meets program verification
CHR for Imperative Host Languages
Constraint Handling Rules
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
A simple semantics for polymorphic recursion
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
Type processing by constraint reasoning
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Principal type inference for GHC-Style multi-parameter type classes
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Scalad: an interactive type-level debugger
Proceedings of the 4th Workshop on Scala
Hi-index | 0.00 |
We present a novel approach to allow for overloading of identifiers in the spirit of type classes. 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, that provide our scheme with a form of programmable type language. 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 provides a common formal basis for many type class extensions such as multiparameter type classes and functional dependencies.