https://docs.python.org/3.8/reference/expressions.html#evaluation-order

the example states "expressions will be evaluated in the arithmetic order of their suffixes"
but for the line: `expr1(expr2, expr3, *expr4, **expr5)` this is not true - or at least misleading.

this error goes way back until version 2.5: https://documentation.help/Python-2.5/evalorder.html
were the outer 'expr1' was labeled 'func'

the actual order should be (if I'm not totally mistaken): expr5(expr1, expr2, *expr3, **expr4)

the simple program:

def expr(*args, **kwargs): 
    print(*args, *(zip(kwargs.keys(), kwargs.values())))

 expr(expr("1"), expr("2"), expr("3"), d=expr("4"))

returns:
1
2
3
4
None None None ('d', None)