Lars Hellström wrote:
 > Combinations I'd like to use in my tclldoc package are:
> 
>   @{ h }
>   @{ h o }
>   @{ x{\BooleanFalse}{\TD@convert@colons}{::\relax} h o }

The first two would fit into the model I've already suggested:

{ >\ArgMakeHarmless m }
{ >\ArgMakeHarmless o }

The third one does raise some issues, but I'm wondering how common it
is.  You either have to allow daisy-chaining, either using the xdco2l3
syntax or something like:

{ >{\TD_convert_colons:nN \ArgMakeHarmless} m }

or write a post-processor which does both parts:

{ >{\TD_harmless_and_convert_colons:nN} m }

where the chaining is then done by \TD_harmless_and_convert_colons:nN

As I say, part of the question for me is how commonly such processing is
needed. I'd think that most user functions are not going to need any of
this type of thing, and am trying to keep an eye on the balance between
covering every "cool" feature and keeping things accessible.
-- 
Joseph Wright