[R6RS] modules?

Matthew Flatt mflatt
Wed Apr 14 13:26:30 EDT 2004

At Wed, 14 Apr 2004 19:12:04 +0200, Michael Sperber wrote:
> Can you present an argument as to why to internal modules shouldn't
> have library status, as they presently seem to have in PLT Scheme?

The only way that I know to get full SC (including `import-only')
involves adding support in the core syntax engine.

I'm fairly certain that I could improve `package' to make it more like
SC minus `import-only', but it's painful, and it probably has
algorithmic problems (much like the original hygienic systems).
Extending the core expander looks easy by comparison.

> I worry that even the top-level module system is already pretty hard
> to implement, looking at the time it took many implementations to even
> just catch up with SYNTAX-RULES.  Adding internal modules as a
> required part would make this harder still.

I suspect that it's relatively easy to add SC `module' and `import'
into MS or old `syntax-case', but I haven't yet tried, so I may be

> Matthew> I think that MS modules are more important for portable and
> Matthew> modularized code, whereas SC modules are more useful for
> Matthew> building macros.
> Matthew> But a consistent syntax might be a good idea, anyway.
> You say this, but you don't really put up an argument for it except
> for saying that Schemers like internal DEFINE, so they'll like
> consistent syntax here, too.

The weakness of the argument reflects the weakness of my conviction.
(I would have a difficult time arguing for internal `define', too.)

> You also say that there are puzzling differences between top-level
> and internal define, and I'd say we should get rid of these. Do you
> have a feel as to how puzzling the differences between the internal
> and the top-level module system will be?

My intuition is that it will be very much like `define', but I don't
have much experience to back up my intuition.


More information about the R6RS mailing list