Given the example from the documentation, of the `tic-tac-toe` package
and "conflicts" (quoted at end of this email), instead, why isn't the
norm to do:
(require tic-tac-toe)
Or, when necessary:
(require tic-tac-toe/matrix)
Why, when one installs a package named `tic-tac-toe`, would one be
referencing modules of the package as `data/matrix`?
I don't recall ever seeing a situation in which I wanted different
third-party Racket packages to be stomping over each other's
module-naming namespaces.
For people who want to release lots of well-behaved reusable packages,
using good practices, with minimal effort and head-scratching, things
like this are a problem.
2 Package Concepts
A package is a set of modules in some number of collections. Modules
installed using the Racket package manager are required like any other
modules. For example, if the package tic-tac-toe contains the module
"matrix.rkt" in a "data" collection, then after tic-tac-toe is installed,
(require data/matrix)
[...]
2.5 Package Conflicts
Two packages are in conflict if they contain the same module. For
example, if the package tic-tac-toe contains the module file
"data/matrix.rkt" and the package factory-optimize contains the module
file "data/matrix.rkt", then tic-tac-toe and factory-optimize are in
conflict.
A package may also be in conflict with Racket itself, if it contains a
module file that is part of the base Racket implementation. For
example, any package that contains "racket/list.rkt" is in conflict
with Racket.
For the purposes of conflicts, a module is a file that ends in ".rkt",
".ss", or ".scrbl".
Neil V.
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev