<div dir="ltr">I don't understand why Smalltalk doesn't allow me to have an or:<div>method that takes a block argument (except on Boolean). For example:</div><div><br></div><div>Set or: 1. ==> MNU as expected.</div><div><br></div><div>Set or: [1]. ==> NonBooleanReceiver exception.</div><div><br></div><div>Set or: [:x | x] ==> Argument has too many arguments</div><div><br></div><div>Is it because the compiler specializes this to boolean when it sees</div><div>the or: [ ... ] syntax? Is this a tradeoff made for performance?</div><div><br></div><div>greetings,</div><div>  Lorenz</div></div>