That&#x27;s also what&#x27;s great about pure dynamic systems like Smalltalk.  &#x27;ifTrue:&#x27; is just a message-send, the class &quot;False&quot; doesn&#x27;t evaluate the block parameter, the class &quot;True&quot; does. And yes, you can then recover the parse tree, for example the Gemstone OODB lets you use arbitrary blocks (closures) as queries, recovers the parse tree and then creates an optimized query from it.  Quite neat.