Slight change of the Curry syntax

From: Michael Hanus <>
Date: Mon, 18 Aug 2003 19:24:03 +0200

Dear Colleagues,

after having implemented the module system of Curry in PAKCS,
we detected a couple of minor syntactic problems for which
a propose a slight change in the syntax of Curry.

In the current report, "as", "hiding", and "qualified"
are keywords and, thus, cannot be used as identifiers.
However, some Haskell programmers using Curry seem to like
the use of "as" as identifiers. Looking at the Haskell syntax,
I realized that the above keywords are not keywords in Haskell
so that they can be used as ordinary identifiers in Haskell.
Since these words have only a special meaning in module headers,
there is no risk of ambiguity. Thus, I propose to follow the
same rules in Curry, i.e.:

Proposal 1:
"as", "hiding", and "qualified" are not keywords and can be used
as ordinary identifiers.

Furthermore, there is a problem with qualified names and the
function composition operator. Consider the definition

f i = [i..]

The right-hand side can be interpreted in two ways:

- an arithmetic sequence (i.e., (enumFrom i)), or

- the list consisting of the operator "." imported from module "i"

To avoid this ambiguity, I propose the first alternative
since this is often used in existing programs.
This alternative can be enforced by the following

Poroposal 2:
Qualifications of the operator "." are syntactically not allowed.

Of course, this restricts the current language definition
but I think the programs where this restriction become relevant
can be easily avoided.

Please let me know if you have any comments or objections,
otherwise I'll add these changes to the current language report.

Best regards,


curry mailing list
Received on Di Aug 19 2003 - 08:28:31 CEST

This archive was generated by hypermail 2.3.0 : Di Sep 29 2020 - 07:15:02 CEST