[R6RS] Re: strawman module syntax

Michael Sperber sperber
Sat Jul 24 13:45:49 EDT 2004


>>>>> "Matthew" == Matthew Flatt <mflatt at cs.utah.edu> writes:

Matthew> MzScheme allows macros to expand into `require' and `provide' forms,
Matthew> but the strawman proposal did not allow that.

That was what I wanted to know.

Matthew> I made the strawman weaker on purpose. But if we eventually
Matthew> agree to allow `require' in local `module's and/or internal
Matthew> definition contexts, then we might as well allow macros to
Matthew> expand to `require's.

All this suggests to me even more strongly that a
"module-system-in-a-separate-configuration-language" and the
"module-system-embedded-in-the-normal-language" should be distinct
(I'll call the former "separate" and the latter "embedded" in this
message):

- Both are useful, and each provides something the other doesn't.
  (Richard has explained what's useful about a separate module system;
  I can think of of specific uses for an embedded system, but Kent
  really should post something.)

- It seems at least very hard to change one such that it satisfies all
  of the needs that the other satisfies.

Now, the MzScheme module system seems to be something of a mix of
both: the MODULE form is separate, but PROVIDE and REQUIRE are
embedded.

I'm wondering if, in a system that would provide a separate module
system and an embedded one (conceivable in the form of a library in
the separate system), if the cases where you need things to
macro-expand into PROVIDE and REQUIRE would actually naturally fall
into the domain of the embedded system.  Maybe you could post some
example usages of this?

-- 
Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla


More information about the R6RS mailing list