On 24/12/2018 10:45, Frank Mittelbach wrote: > Am 24.12.2018 um 10:22 schrieb Joseph Wright: >> >> Bear in mind that the code here is often optimised or is set up for >> bootstrapping, particularly if you look at the early stuff. > > which is really another way of saying that the core kernel code is > something that is not meant to (and in fact in many cases to able to) > show expl3 coding conventions. > For example, \exp_after:wN is something that in package code should be > rarely if ever needed (and if you are using it then it usually means > that you are thinking too much in the TeX model of expansion). However, > while providing the core expl3 functionality it is obviously needed and > so you will see that a lot in kernel code. > > Better places for understanding expl3 convention would therefore be > packages such as siunitx etc or many of the answers given by @egreg on > Stack Exchange. I'm hoping to finish v3 of siunitx over the holidays or soon after: it's probably a better model for *new* code than looking at the current release. See https://github.com/josephwright/siunitx for the present. Joseph