I do not think we should change the example. I do not want people to falsely believe that they can any expectation of the modules provided by a package from its name. In particular, y<span></span>our comment about this being "strange" is not supported by the package system's promises. <div><br></div><div>Jay<br><br>On Sunday, November 30, 2014, Matthew Flatt <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We should change that example. It would indeed be strange for package<br>
named "tic-tac-toe" would introduce a `data/matrix` module, and the<br>
documentation really shouldn't suggest that it makes sense for a<br>
package to introduce overlaps that are not reasonably expected from the<br>
package name.<br>
<br>
<br>
There are plenty of real examples where it's sensible for different<br>
packages to introduce modules in overlapping collections, though.<br>
Sometimes, it's because different packages implement different facets<br>
of a conceptual whole, such as "math-lib", "math-doc", and "math-test"<br>
all extending the "math" collection. Sometimes, it's more a mater of<br>
history, such as "compatibility-lib" extending several different<br>
collections. And then there are example that you might classify as<br>
either of those or as a third kind, depending on how you look at it:<br>
"draw-lib" adds `racket/draw`, and "gui-package-manager" adds<br>
`pkg/gui`.<br>
<br>
<br>
The "data" collection is among those that were intended to be extended<br>
by multiple packages. Whether that's really a good idea remains to be<br>
seen, but that's why "data" shows up as an example in the manual.<br>
(Again, though, no one would expect a "tic-tac-toe" package to<br>
introduce a new module in "data".)<br>
<br>
<br>
At Sun, 30 Nov 2014 10:22:49 -0500, Neil Van Dyke wrote:<br>
> Given the example from the documentation, of the `tic-tac-toe` package<br>
> and "conflicts" (quoted at end of this email), instead, why isn't the<br>
> norm to do:<br>
><br>
> (require tic-tac-toe)<br>
><br>
> Or, when necessary:<br>
><br>
> (require tic-tac-toe/matrix)<br>
><br>
> Why, when one installs a package named `tic-tac-toe`, would one be<br>
> referencing modules of the package as `data/matrix`?<br>
><br>
> I don't recall ever seeing a situation in which I wanted different<br>
> third-party Racket packages to be stomping over each other's<br>
> module-naming namespaces.<br>
><br>
> For people who want to release lots of well-behaved reusable packages,<br>
> using good practices, with minimal effort and head-scratching, things<br>
> like this are a problem.<br>
><br>
> > 2 Package Concepts<br>
> ><br>
> > A package is a set of modules in some number of collections. Modules<br>
> > installed using the Racket package manager are required like any other<br>
> > modules. For example, if the package tic-tac-toe contains the module<br>
> > "matrix.rkt" in a "data" collection, then after tic-tac-toe is installed,<br>
> ><br>
> > (require data/matrix)<br>
> [...]<br>
> > 2.5 Package Conflicts<br>
> ><br>
> > Two packages are in conflict if they contain the same module. For<br>
> > example, if the package tic-tac-toe contains the module file<br>
> > "data/matrix.rkt" and the package factory-optimize contains the module<br>
> > file "data/matrix.rkt", then tic-tac-toe and factory-optimize are in<br>
> > conflict.<br>
> ><br>
> > A package may also be in conflict with Racket itself, if it contains a<br>
> > module file that is part of the base Racket implementation. For<br>
> > example, any package that contains "racket/list.rkt" is in conflict<br>
> > with Racket.<br>
> ><br>
> > For the purposes of conflicts, a module is a file that ends in ".rkt",<br>
> > ".ss", or ".scrbl".<br>
><br>
> Neil V.<br>
><br>
> _________________________<br>
> Racket Developers list:<br>
> <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
_________________________<br>
Racket Developers list:<br>
<a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</blockquote></div><br><br>-- <br>Jay McCarthy<br><a href="http://jeapostrophe.github.io" target="_blank">http://jeapostrophe.github.io</a><br><br> "Wherefore, be not weary in well-doing,<br> for ye are laying the foundation of a great work.<br>And out of small things proceedeth that which is great."<br> - D&C 64:33<br>