[racket-dev] submodules

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Mar 9 19:22:41 EST 2012

I'll reply to the rest later, but two quick ones:

Just now, Matthew Flatt wrote:
> > How about just (submodule foo ...) be a more memorable syntax for
> > (module* foo #f ...)?
> That was Jon's suggestion, and my objection is that "submodule"
> means something more general than those nested modules that are
> declared with `submodule'.

I just realized that the main use of this (the specific combination of
`module*' with #f) is for sectioning the file -- so how about going in
the direction of `subsection', or to avoid the obvious problem with
scribble: `subpart'?

> > (BTW, there's an obvious question here of why not do that for all
> > paths, so that `foo/bar/baz' can access a `bar/baz' submodule in
> > `foo' or a `baz' in `foo/bar'...
> Search paths cause lots of trouble and should be avoided when
> possible.  This particular two-step search seem to be just barely
> tolerable for `#lang', and I still worry about it; I wouldn't
> suggest it if I saw a better way to accommodate existing code.

I completely agree -- specifically, the "mess" that I referred to at
the end of that comment was due to how things ended: I inevitably
would resort to grepping text to find where some change needs to be
made, I created code mostly via copy-paste, and macros would get very
confusing to deal with.  It was a kind of an experiment that
demonstrated why this particular generalization looks really cute on
paper, but in practice it is a total failure.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.