> Most importantly, we have added modules, allowing programmers to > share portable libraries with ease. We hope implementors > consider the effort of supporting the new standard small compared > to that important benefit. Keep in mind that nothing is > finalized yet, and at this stage we are seeking constructive > feedback.
Congratulations! This is a great step forward for Scheme, especially the module system. I am unsure what forum you would like feedback in, so hope here will work well. There were only two things that struck me as odd - first, the (scheme process-context) module is quite dependent on a certain model of executing processes that might not be true everywhere. It would seem better to me if that were optional, so implementations could provide it if it made sense and not otherwise. (For instance, embedded Schemes might have no environment or command-line arguments. Scheme programs run from a GUI might have an environment but no command-line arguments.) Second, the module form requires everything in a module to be inside the s-expression defining the module, which seems non-ideal for people who have to keep track of their nesting level. (Of course a good editor will handle this for you, but it seems backwards to design a programming language assuming that an editor will make it easier to use.) This is unavoidable at a repl, but I think there should be a facility for modules defined in files to have an s-expression at the top defining the module which would be closed before the body of the module. Perhaps if the first s-expression in a file is a module, then the rest of the file could be an implicit (begin ...) form in the module definition. Thanks for all of your work on this Noah Lavine