1) Something new for me: def foo(arg1, arg2=bar()) means that bar() is
called during "definition" of foo function. Thus every time. It is
impossible to prepare structure for tests.
2) I had this on "review". There are some notes about design of SN and
the way how it uses arguments. One small but mighty change is that
arguments are parsed on one place.