Curry module system

From: Michael Hanus <>
Date: Fri, 27 Jan 2006 12:03:33 +0100

Dear Colleagues,

working on an update of the Curry report, I think it is necessary
to clarify or slightly change a few aspects related to the module
system which I'd like to propose in the following.

1. Currently, it is not specified where modules are stored but this
   is relevant to find import modules. Therefore, I propose to state
   that a module named "M" should be stored in a file named "M.curry".
   I think this is already required in all current implementations of Curry.

2. As a consequence of 1., it seems reasonable that in a Curry program
   stored in file "Prog.curry" with a missing module head, the default
   module head "module Prog where" is inserted (currently, the report
   states that in this case the standard module head "module main where"
   is inserted).

3. The current report states that the prelude is always implicitly
   imported into all modules. However, there are situations where
   it is reasonable to hide some prelude entities which is impossible
   if the prelude is always imported. Thus, I propose to state that
   the prelude is always implicitly imported if it is not explicitly
   imported. For instance, this allows the hiding of the prelude
   operations "map" and "filter" in the current module by writing
   the import declaration "import prelude hiding (map,filter)".

Please let me know if you have any objections or further improvements.

Best regards,


curry mailing list
Received on Fr Jan 27 2006 - 16:17:43 CET

This archive was generated by hypermail 2.3.0 : Do Jun 20 2024 - 07:15:07 CEST