Hello Frank, thanks for your explanatory notes. Frank Mittelbach wrote: > I think you got the subject quite right when you wrote that \tlp_use:N is > harmful. When we experimented with the various data types it seemed logical at > first glance to include a "use" for tlps but personally I always was kind of > sceptical (and usually didn't use it) and your example gives a good reason why > it isn't really workable. > > So I think the spec here should be that tlps hold tokens and their "use" is to > put the tlp into the input stream directly. after all TeX's model of execution > is to simply go through the input token list and expand and execute them one > by one and a tlp is simply a storage bin for such a sequence of input tokens. I see. > > Here is an example that actually does what I want it to, but might not > > be considered clean code since it depends on implementation details: > > > > \RequirePackage{l3prop} > > \ExplSyntaxOn > > > > \tlp_new:Nn \a_tlp {aaa} > > \tlp_new:Nn \b_tlp {bbb\a_tlp} > > > > \prop_new:N \a_plist > > \prop_gput:Nno \a_plist {key} {\b_tlp} > > \showthe\a_plist > > the above gives you > > bbb\a_tlp and not bbbaaa > > as value. Yes. Otherwise one would have to use \prop_gput:Nnx. > if that is what you wanted then I would say with the spec that the > "use" of tlps is to simply put them into the input stream the above wouldn't > use implementation details but specification details. That's good. > > And then: What's the error message in \tlp_use:N for? It looks > > so arbitrarily. Probably it's not? > > well I don't know when that was added, but i can see some logic behind it (not > that i think it is worth having really (as i think one should get rid of the > whole cmd). I think the idea was that a tlp is a storage bin so could never be > "\scan_stop:", but either "empty" or contains a list of tokens. So > "\scan_stop:" means something like \tlp_use:c tried to use a tlp that simply > doesn't exist Oh, of course. I couldn't figure out where the \scan_stop: should come from. But then I didn't thought about \tlp_use:c. Ciao Andreas