Hi Manuel, Just a short note to back up what Joseph just said. On 05/08/2009, at 7:07 AM, Joseph Wright wrote: > For the record here, the idea is that expl3 is stable. By all means, in our so-far limited applications of the codebase, it seems ready to use to us. One of the reasons that we've been able to change things at all is that no-one is relying on the code for anything. Now that people are starting to use it we have a much greater responsibility in not breaking anything. I do still expect there will be some evolution with the feedback of more users such as yourself, but this should mostly be in areas of growth (i.e., where things are missing) rather than change. As far as I'm concerned, it's now or never for the expl3 code (some might even say it's too late). I think we're at a stage where we can state: we've iterated some ideas and this seems the best we can achieve; if you use it now we will support backwards compatibility to the best of our ability. I hope the rest of the team agrees with this, more or less. Will P.S. Joseph, I can't help noticing your use of \cs_new_nopar:Nn. I know that without an argument this usage is (in TeX terms) more "correct". But, unless I was drastically mistaken, the assumption we made when naming these functions was that it didn't really matter to have some spurious \long's and we really wanted people to use \cs_new:Nn in all cases except when they *specifically* wanted to restrict \par. (Since the \long case is more general and more frequent. Restricting \par in the input is better achieved when defining the user commands than the underlying commands beneath them.) Unfortunately, there are lots of cases in source3 where this convention is not followed, but only because the translation was performed mechanically. What do you think about the whole thing?