The naming format \<module>_<description>:<arg-spec> is surely right when
starting to build orthogonal modules:

  In my experimentation, I wrote \<module>/<description>. The thing is that
once has this kind of names, one can start building new commands that frees
developer from knowing the developer the details of the expanded name.

  For example, a command \module{module_name}{ ... } which automatically
add the module_name to code, and provides special definition commands for
the different argument types. The code the developer then writes could then
look pretty normal, say
  \module{tex}{
    \def:D\let
    \def:D\def
    ...
  }
instead of the definitions of l3names.dtx file
  \name_primitive:NN \let
  \name_primitive:NN \def

  The next step could be submodules of modules. So at least this part looks
both exciting and to be the right thing to me.

  I can note that allowing <description> to contain _ may be a problem when
starting to build submodules: Say the name \foo_bar_xxx:w becomes
ambiguous, if bar is the submodule of foo, which cannot be distinguished
from the name bar_xxx in the module foo.

  So if submodules should be allowed, then either _ should be an indication
of a submodule or a space in a name, but not both.

  Hans Aberg
                  * Email: Hans Aberg <mailto:[log in to unmask]>
                  * Home Page: <http://www.matematik.su.se/~haberg/>
                  * AMS member listing: <http://www.ams.org/cml/>