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