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