1. The \toks_put_left is defined \def_new:Npn \toks_put_left:Nn #1{\exp_after:NN\toks_put_left_aux:w \toks_use:N #1\q_stop #1} \def_long_new:Npn \toks_put_left_aux:w #1\q_stop #2#3{#2{#3#1}} but if the toks contains a quark stop the command fails. This sort of errors is very disconcerting (I found it very often in 2e) and I think should be avoided as possible. This could be defined \def_new:Npn \toks_put_left:Nn #1{\exp_after:NN\toks_put_left_aux:w \exp_after:NN{\toks_use:N #1}#1} \def_long_new:Npn \toks_put_left_aux:w #1#2#3{#2{#3#1}} which is only a token longer. 2. Every people is a world and it's impossible to devise a syntax which all people will be happy with. But even so, I think I must avoid just "importing" to TeX the syntax from our favourite programming language. TeX has its own internal logic and its own established syntax and this should be our starting point. Am I the only guy in the world whose favourite language is TeX? :-) 3. David said >although looking at your example above / looks too `hard' >a break to me, I can read \chk_var_or_const:N as one token but \chk/ >looks too split off. I think so, but I prefer it (or !) to _ which is too weak. Personally, I've always disliked the underscore because it looks as it was out of the text line, and I've preferred the uppercase convention of Modula2 or AppleTalk. Javier Regards