Dear Colleagues,
I'd like to inform you that I have updated the Curry report.
Most of the changes are minor (see the short summary of
all changes at the end of this email). The two major changes
are:
1. Module system: Due to a suggestion of Wolfgang Lux, I modified
its definition so that it is almost compatible with Haskell.
In particular, renaming is replaced by qualification and hiding.
2. Local declarations (let/where): Nothing has been changed but I
provided a precise definition of the meaning of local declarations
by adding in Appendix D a section about the elimination of
local declarations. Note that the exact meaning of local
declarations is relevant since Curry has a distinction between
variables (i.e., arguments of functions which are shared)
and functions (which are not shared).
As usual, you can find the new version via the Curry homepage
(
http://www-i2.informatik.rwth-aachen.de/~hanus/curry)
or directly at
http://www-i2.informatik.rwth-aachen.de/~hanus/curry/papers/report.dvi.Z.
Comments are welcome!
You might be interested to have a look at the Curry web pages,
where I have recently updated. In particular, I extended the page about
papers related to Curry. Please let me know if you have
some further contributions.
Best regards,
Michael
---------------------------------------------
Changes to the version of January 13, 1999:
- Section 2.6: Footnote about instantiation of unbound functional variables
added.
- Section 4.2: Typing rules for existentials and defining equations
corrected.
- Section 5: Definition of module system changed so that it is
almost compatible with Haskell (e.g., renaming is replaced by
qualification and hiding)
- Section 10: Command ":type" shows the type of an expression instead
of a function
- Appendix B: standard prelude extended (const, /=, lines, unlines,
either, maybe,...)
- Syntax: bugs w.r.t. infix operators and unary minus corrected
- Syntax: module syntax slightly changed, list of keywords updated
Changes: qualified infix operators allowed, renaming is replaced by
qualification and hiding
- Appendix D: "pattern" replaced by "call pattern" to avoid confusion
with patterns in the syntax of Curry (which are defined as expressions
without defined functions).
- Typo in Figure 3 corrected.
- Section 2.2.1 and Appendix D.2: Explanation of sharing made more precise.
- Appendix D: Section about the elimination of local declarations (let/where)
included. This lifting of local declarations is necessary to
explain the operational semantics and the type system of the
entire language. Concrete implementations are free to choose
other techniques if they are conform with this specification.
---------------------------------------------
Received on Fr Okt 22 1999 - 12:55:36 CEST