@warrickball @gvwilson So I'm generally not in favor of being pedantic, but can I ask a clarifying question -- is it that it's short-circuiting, or that the objects are being defined/instantiated at different stages in the execution? I read this as being similar-in-spirit to the (common?) mistake of putting a mutable as a default argument in a function.