Updated Curry report

From: Michael Hanus <hanus_at_informatik.rwth-aachen.de>
Date: Wed, 13 Jan 1999 11:51:10 +0100

Dear Colleagues,

I'd like to inform you that I have updated the Curry report
to include the results of the discussion since the publication
of the last version. The changes are mainly corrections of
minor errors or explanations of unclear points. Moreover,
the precise definition of a well-typed program has been
added in Section 4.2. The only relevant change to the language
is the omission of implicit declarations of free variables
(see my email to this list of January 7, 1999). I append a
short summary of all changes at the end of this email.

As usual, you can find the new version via the Curry homepage
or directly at
Since this is the first complete version which, I think, is stable
in many aspects, I gave it the version number 0.5 to enable
simple references to this version.

You might be interested to have a look at the Curry webpages,
since it includes a nice new symbol for Curry (thanks to
Frank Steiner, suggestions for improvements are welcome)
and a new section summarizing the different implementations
of Curry.

Best regards,



Changes to the version of November 23, 1998:

- Section 2.2.2: special case of single Boolean guard removed.

- Section 2.4:
  - implicit declarations of free variables deleted (see email of
    January 7, 1999)
  - discussion of mutally recursive "free" declarations added

- Section 4.1: explanation added that "predicates" in the logic programming
  sense should be considered as constraints rather than Boolean functions
  in Curry.

- Section 4.2: Definition of well-typed programs added by means of
  typing rules.

- Section 10: ".curry" defined as the standard extension for loading
  Curry programs and full command names for the interactive
  environment added.

- Some fixity declarations in the prelude corrected.

- Section B (Prelude):
  - function "tryone" (cf. Section 7.4) added since it is necessary to
    define search operator "one"
  - "unpack" modified so that it extracts only a single search goal
    (the previous "unpack" on lists is now equivalent to "map unpack")

- Section C.1:
  - Characters "\:" added to valid OpID characters
  - Keywords of Curry defined

- Section C.3:
  - rules for type expressions and patterns corrected
    (for compatibility with Haskell)
  - order in function declarations relaxed: signature, eval annotation
    and equations can come in any order
  - Expression syntax extended (sections and unary minus included)

- Section C.4 about handling of infix operators added.

- Section D.2: evaluation of conditional rules directly integrated in the
  operational semantics of Curry. Thus, Section D.3 is deleted since
  the special handling of conditional rules by a syntactic transformation
  caused some confusion.

- Section D.4: Inference rule 6 for solving equational constraints corrected.

Received on Mi Jan 13 1999 - 11:55:00 CET

This archive was generated by hypermail 2.3.0 : Do Okt 01 2020 - 07:15:02 CEST