Hi, On 13/08/2009, at 2:43 PM, Joseph Wright wrote: > Are we approaching a consensus on this (if not what everyone considers > ideal, at least on something most of us can live with)? Seems great to me. I think it strikes a good balance. I'll be interested in hearing Morten's and Frank's views (although I understand they might not get the opportunity). * * * As far as the definition of the processors is concerned, I think I prefer using a pre-determined toks variable rather than a more abstract "#1". That is, to write { >{\my_sanitise:n} m } \cs_set:Nn \my_sanitise:n { \toks_set:Nn \l_xparse_arg_toks { <something with #1> } } rather than { >{\my_sanitise:Nn} m } \cs_set:Nn \my_sanitise:Nn { \toks_set:Nn #1 { <something with #2> } } It looks better, to me, that processor functions have a single-letter signature in their simplest form. (It seems pretty clear that we should be using functions with expl3 names here?) * * * Also, I think this is about as simple as we can get. We could theoretically have a function like \xparse_return_arg:n { <something with #1> } instead of the \toks_set:Nn, but this would still require scratch variables to manipulate #1 in the first place. So no gain. Best regards, Will