It is difficult for me to write about these things, as I've said before, because I have not looked into writing packages. My point of view is that of writing a formatter for an XML application that makes humanoid, interceptable LaTeX source. As I understand it, the goal for LaTeX 3 is to have several layers, with well-defined LaTeX specs, including a layer for users to create commands with \newcommand, a layer one level down for package writers, and further lower layers although I am unclear about just what these are. Case in point: a command for users (only in a math mode) \setbuilder{arg1}{arg2} that produces a notational definition of a mathematical set, where arg1 is a parameter expression and arg2 is a defining-condition expression. I would like to explain why this is a bit much to expect at the \newcommand level and, therefore, what one might want to have available at the package writer's level as a well-defined LaTeX method. With the present "\newcommand" one can do the following *ugly* thing: \newcommand{\setbuilder}[2]{\left\{{#1}\mid{#2}\right\}} This is ugly because the vertical bar provided by \mid does not stretch correctly. For example, a user's invocation of \[ \setbuilder{\frac{m}{n}}{n \neq 0} \] should be equivalent to \[ \left\{ \left. \frac{m}{n} \right| n \neq 0 \right\} \] because, in this example, the box height for the parameter expression is greater than that of the defining-condition expression. Of course, if the larger of the two box heights was that of the defining condition, then one would want different arrangements for the inner \left,\right pair, i.e., parameter-expression \left| defining-condition-expression \right. and one wants \setbuilder handle this branching automatically. My impression is that it cannot be done legally with \newcommand. I am suggesting that one might want to have the package writing layer provide a well-defined LaTeX way to make branches based on various sizes associated with the arguments of package-provided commands, so that it would be easy for a package writer to provide this \setbuilder. (I do not know if it actually exists somewhere, and I am not asking that question.) -- Bill