An ideal model for recursive polymorphic types
Information and Control
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computational consequences and partial solutions of a generalized unification problem
Proceedings of the Fourth Annual Symposium on Logic in computer science
Type classes and overloading resolution via order-sorted unification
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
On the complexity of ML typeability with overloading
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
ESOP'92 Symposium proceedings on 4th European symposium on programming
POPL '93 Proceedings of the 20th 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
Qualified types: theory and practice (ordering relation)
Qualified types: theory and practice (ordering relation)
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Dynamic typing for distributed programming in polymorphic languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Open and closed scopes for constrained genericity
Theoretical Computer Science
Extracting programs from type class proofs
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Modular generic programming with extensible superclasses
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Aspect-oriented programming with type classes
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Type classes in functional logic programming
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
A simple semantics for polymorphic recursion
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
We present a new approach to the semantics of languages with ML-like polymorphic types and type classes. The goals of the new approach are simplicity and generality. Our typing rules are a relatively straightforward extension of the rules for translating core-ML to core-XML. The new features are an encoding of classes as recursive sets of types, and class-membership constraints on types. We show that the soundness of this type of system is independent of the fixedpoint operator used to interpret (recursive) classes, and thus there is no room to engineer a sound notion of well-typing based on other considerations such as decidability. These ideas are applied to investigate the appropriateness of Haskell-style type inference which uses backward chaining for inference of instance relationships. Haskell's algorithm turns out to imply a least fixed point semantics for classes. We show that the Haskell approach is correct and complete for the special case of convergent classes. Although this includes all classes definable in Haskell, most proper extensions of Haskell allow classes that are not convergent, which helps explain the negative results for decidability of type inference for many extensions.