> By the way, with the interfaces but back in the compatibility section shows > some failures in some files that need checking. Not really got around > checking for cause. > > xor certainly dies because some of its code misuses the seq implementation > and hacks into \seq_elt:w so not surprising this dies. For others I don't know > yet. I quickly grepped through xor, and it seems easy to change since the most complicated thing that is done with \seq_elt:w and \seq_elt_end: is \cs_set_nopar:Npn \seq_elt:w ##1\seq_elt_end: {##1,} which can be replaced by \cs_set_nopar:Npn \seq_elt:n ##1 {##1,} A more general (temporary) fix is to define \seq_elt:n as \cs_set:Npn \seq_elt:n #1 {\seq_elt:w #1 \seq_elt_end:} instead of \ERROR\use_none:n when it is not active. > I must say I rather like \seq_pop_left_with:Nn as a generic approach. It is > just that I don't want to drop the function that one normally needs for it. > And I rather prefer the _pop_with to _pop_do. Ok, so let it be _pop_with. > or even > \seq_get_pop_left:NN Why not \seq_get_left_pop_left:NN? ;-) I think that keeping names rather short is better. > \seq_gget_pop:NN > \seq_get_gpop:NN > \seq_gget_gpop:NN > > perhaps that's better but I'm not sure if it is not just making things > longer I would keep \seq_pop:NN and \seq_gpop:NN with a local return value, with \seq_pop_with:Nn and \seq_gpop_with:Nn for other uses. > > where the \use:n unbraces its argument. Not a very convincing use. > > No not really :-) if it is a serious use I would probably encapsulate it by > its own functions and then use those, but anyway ... > > > But Lars Madsen's examples with { \foo_func:nn {arg1} } are better. > > yes probably Another option is to keep the name \..._map_function:NN but undocumentedly allow the second argument to be braced. I'm not convinced, though. > > \clist_remove_element:Nn > > \tl_remove_all_in:Nn > > \tl_remove_in:Nn > > agreed some concistency in the naming would be in order. About the actual > names to use I'm not so sure. Must confess I wasn't aware of the tl ones at > all. The _in seems to me unnecessary and I would personally prefer > > \tl_remove_once:Nn > \tl_remove_all:Nn That seems reasonable. Regards, -- Bruno