Reading through the l3draw documentation various matters came to mind: Section 1.9 of l3draw.pdf Typos Text: \draw_transform_matrix:nnnnn has a fifth "n" Margin: \draw_transform_xscale:n the second occurrence should be \draw_transform_yscale:n and not greyed out. Text: \draw_transform_shift:n \draw_transform_xshift:n delete \draw_transform_shift:n Margin: \draw_transform_matrix_reset needs a concluding colon Clarification Perhaps there should be a mention under \draw_transform_matrix_concat:nnnn that concatenating means matrix multiplication from the left. Naming There is \draw_transform_matrix_concat:nnnn and \draw_transform_shift_concat:n. The rotate, scale, shift and slant transforms are also concatenations but not so named (lack the _concat). I wonder if a better naming scheme might be to drop the _concat from \draw_transform_matrix_concat:nnnn and \draw_transform_shift_concat:n, thus treating all the concatenating transforms similarly, and rename the functions currently called \draw_transform_matrix:nnnn and \draw_transform_shift:n to something else, perhaps \draw_transform_matrix_set:nnnn and \draw_transform_shift_set:n? Comma lists? Was consideration given to using a comma list instead of four separate braced arguments for \draw_transform_matrix:nnnn? {a}{b}{c}{d} needs four brace pairs, {a,b,c,d} needs only one. I have a standard US keyboard (at least I think it is). The { and } characters require the shift key and a (small) stretch of the little finger to type; commas on the other hand are easy, no stretch, no shift key. Comma lists are widely used elsewhere in l3draw for specifying coordinate pairs, e.g. \draw_path_moveto:n { 1cm , 0cm }. Even {a,b}{c,d} would be better -- and helpful in separating the rows of the matrix. Andrew --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus