Hi Kelly, > - Are all boxes and coffins made so that their content is wrapped in a TeX group? > More specifically, is it safe for code to assume that all box/coffin content is > implicity grouped? Yes, because the underlying TeX box makes a group: \count0=1 \hbox{\count0=2 }\the\count0 \bye so you can assume the grouping. > - Many functions in expl3 are of the form `a := func(b, c)` (e.g. `\str_concat:NNN`, > `\seq_set_map:NNn`) or `a := func(b)` (e.g. `\int_set:Nn`, `\tl_set:Nn`). > Sometimes, one will want to write code like `a := func(a, b)` or `a := func(a)`, > that is, directly assign a new value to a variable based on its current value. > Is it ever safe to write such code in expl3? Yes, because first `func(a, b)` is evaluated, and only then the assignment is performed. Something like: \def\x{b} \edef\x{a\x c} makes `\x=macro:->abc`. Though this last one may depend a bit on the macro implementation (if the function needs intermediate steps to do its job, for example), but I'd expect to able to rely on that behaviour. Best Phelype