Will Robertson wrote:
> Alternative: use tlp->tlist regardless and say that tlist functions that
> take inline arguments are generally more robust with # tokens than
> saving data to a tlist pointer. (Since I kind of like the =tlist= name.
> Wishy-washy, I know.)

I quite like this (I feel that "pointer" is not that easy a term to use
for existing (La)TeX programmers).  I'd go for:

- toks: The *only* place where "#" is supported in input outside (at
least when not catcode 12, per Will's other suggestion).
- tlist: A list of tokens, either stored (current tlp) or not (current
tlist).

I also note that the \edef behaviour of toks versus tlp/tlist is
important. By using only two categories, I'd say things are kept simple.
toks = can use # + odd \edef behaiour, tlist = no # + standard \edef
behaviour.

This leaves things like \tlist_to_str:n and \tlist_to_lowercase:n.  I'd
say that they still make sense in the toks/tlist formalism.

> Also, is there a way that the naming of the \token_ module can be
> incorporated into our naming scheme above? Or is that stretching things
> too far? (My current feeling is that it is.)

I'd agree: leave well alone!
-- 
Joseph Wright