These are quite good and definitely result in quite surprising output in some cases.
I would have liked the descriptions/answers to be a bit more detailed though. For example, why is the static constructor called only after the instance constructor (in part 2)? As far as I can see in the docs, this should not be the case?