Frank Mittelbach wrote: > I agree with you that arg spec is getting (and got) in the wrong direction, > too many letters too much encoded in convention. This needs one more serious > round of discussions and thought. However, beside "perfect" conventions one > also always has to think about the look and feel of the resulting code, e.g., > even if it is more logical perhaps to use "t" and "f" for true and false > branches "T" and "F" work better because they stand out and that is what you > need for these arguments. From writing the few things I've tried in expl3, I'd say the the arg-specs I've use most (by some way) are N, T, F, n and c, plus p in \def:Npn (although nowhere else). Probably o and x pop up in similar numbers, with everything else very rarely: I've used f a couple of times, d perhaps once or twice and w for things like \tlp_map_break:w (where I'm not sure it helps). (I've also been forced to use a couple of :D primitives, but I'm sure that this will be sorted.) So one could possibly rationalise to: N, T, F, n, c (all unchanged), x (perhaps also covering current X), w (covering current w and p) and e (or s = special) (other expansion, read docs, to cover d, f, current E, ...), plus of course D. That is nine letters, with e and w covering a multitude of things, i.e. these are both "special" and the user needs to read the rules for using these functions. I'd say that ten or fewer letters would be a worthy aim. -- Joseph Wright