|
ABSTRACT
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
S. Abdennadher. Operational semantics and confluence of constraint propagation rules. In Proc. of CP'97, LNCS 1330, pages 252--266. Springer-Verlag, 1997.
|
| |
2
|
|
 |
3
|
|
| |
4
|
|
 |
5
|
Kung Chen , Paul Hudak , Martin Odersky, Parametric type classes, Proceedings of the 1992 ACM conference on LISP and functional programming, p.170-181, June 22-24, 1992, San Francisco, California, United States
|
| |
6
|
|
| |
7
|
T. Frühwirth. Constraint handling rules. In Constraint Programming: Basics and Trends, LNCS 910. Springer-Verlag, 1995.
|
| |
8
|
T. Frühwirth. A declarative language for constraint systems: Theory and practice of constraint handling rules, 1998. Habilitation.
|
| |
9
|
T. Frühwirth. Theory and practice of constraint handling rules. Journal of Logic Programming, 37(1--3):95--138, 1998.
|
 |
10
|
Matthias Neubauer , Peter Thiemann , Martin Gasbichler , Michael Sperber, Functional logic overloading, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.233-244, January 16-18, 2002, Portland, Oregon
|
| |
11
|
K. Glynn, P. Stuckey, and M. Sulzmann. Type classes and constraint handling rules. First Workshop on Rule-Based Constraint Reasoning and Programming, July 2000. http://xxx.lanl.gov/abs/cs.PL/0006034+.
|
| |
12
|
M. Hanus. The integration of functions into logic programming: From theory to practice. Journal of Logic Programming, 19&20:583--628, 1994.
|
| |
13
|
The Mercury language reference manual, 2001. http://www.cs.mu.oz.au/research/mercury/+.
|
| |
14
|
D. Jeffery, F. Henderson, and Z. Somogyi. Type classes in Mercury. In Proc. of 23rd Australasian Computer Science Conf., pages 128--135. IEEE Press, 2000.
|
| |
15
|
|
| |
16
|
M. P. Jones. Coherence for qualified types. Research Report YALEU/DCS/RR-989, Yale University, Department of Computer Science, September 1993.
|
 |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
S. Peyton Jones, M. P. Jones, and E. Meijer. Type classes: an exploration of the design space. In Haskell Workshop, June 1997.
|
| |
21
|
|
 |
22
|
Jeffrey R. Lewis , John Launchbury , Erik Meijer , Mark B. Shields, Implicit parameters: dynamic scoping with static types, Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.108-118, January 19-21, 2000, Boston, MA, USA
[doi> 10.1145/325694.325708]
|
| |
23
|
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348--375, Dec 1978.
|
| |
24
|
T. Nipkow and C. Prehofer. Type reconstruction for type classes. Journal of Functional Programming, 5(2):201--224, 1995.
|
| |
25
|
|
 |
26
|
Martin Odersky , Philip Wadler , Martin Wehr, A second look at overloading, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.135-146, June 26-28, 1995, La Jolla, California, United States
[doi> 10.1145/224164.224195]
|
| |
27
|
S. Peyton Jones et al. Report on the programming language Haskell 98. http://haskell.org.
|
| |
28
|
M.J. Plasmeijer and M.C.J.D. van Eekelen. Language report Concurrent Clean. Tech. Report CSI-R9816, University of Nijmegen, June 1998. ftp://ftp.cs.kun.nl/pub/Clean/Clean13/doc/refman13.ps.gz+.
|
| |
29
|
M. Shields and S. Peyton Jones. Object-oriented overloading for Haskell. In Workshop on Multi-Language Infrastructure and Interoperability, September 2001.
|
| |
30
|
P. J. Sulzmann and M. Sulzmann. A theory of overloading. Technical report 2002/2, The University of Melbourne, 2002. http://www.cs.mu.oz.au/~sulzmann/chr/+.
|
| |
31
|
M. Sulzmann and A. Rossberg. A theory of overloading part II: semantics and coherence. Technical report 2002/1, The University of Melbourne, 2002. http://www.cs.mu.oz.au/~sulzmann/chr/+.
|
| |
32
|
M. Sulzmann, A. Rossberg and J. Wazny. The Chameleon language manual. http://www.cs.mu.oz.au/~sulzmann/chameleon+.
|
| |
33
|
M. Sulzmann and A. Rossberg. Beyond type classes. Working paper. www.cs.mu.oz.au/~sulzmann/chr/+.
|
| |
34
|
|
 |
35
|
|
 |
36
|
|
|