Hello all,

The recent question about macro names got me thinking about how
environments should be implemented in LaTeX3.  I think I've seen this
mentioned briefly somewhere, but not really worked through.

My thinking is that, although using \<env> ... \end<env> is convenient,
it is probably not the best way to (1) keep user and internal macros
separate and (2) to show what is going on.  I'd therefore imagine a
"virtual" module begin used for all of the \begin/\end names, something
like:

\envs_<env>_begin:w % Seems easiest here to use :w
\envs_<env>_end:

That means that the business with \end... is removed from command
creation much clearer) and that there is no possibility of accidentally
using an environment-starting command without \begin.

Of course, this is still "some way off", but it seems worth thinking
about in the wider context of refactoring expl3 and discussing keeping
user function names under control.
-- 
Joseph Wright