Hello everyone, If you consult the LaTeX3 SVN, you'll see that I've now committed a lot of what has been discussed here to the real xparse module, removing xparse-alt and doing a little tidying of other xpackages to fit the updated model. At present, the update will break the "xcontent" package, which I'll try to sort out later today if I get time. At present, the implementation covers all of the argument types discussed (including Will's optional-braced-argument, which I've called g = "grouped"), with "+" representing a long argument. I've gone with the idea of ">{\some_function:n}" for processing arguments, for example \DeclareDocumentCommand \foo { >{\xparse_arg_split_on_comma:n}D(){0,0} } { code } is currently correct for finding an optional pair of co-ordinates and splitting at the comma. I've not yet implemented \DeclareExpandableDocumentCommand. I'll probably try to do that over the weekend, with the very restricted set of valid arguments I suggested in my e-mail from yesterday. -- Joseph Wright