> The latter can be avoided if one follows the no-bang-method-chain > rule. But I don't force you to agree with me (yet ;-). If a justification is required, i'd say that the no-bang-method-chain rule follows the if-it's-not-necessary-to-return-a-value-it-is-necessary-not-to rule. In particular, method chains rely on all the relevant methods to follow some specific meta-protocol about return values. The feature of being able to chain messages is thus implemented in hundreds and thousands of places, which most blatantly violates the DRY principle. The most exploded case of non-modularity. If you want to do this right, add an operator that picks the result of the next-to-last expression: foo.bar $ .qux # same as foo.bar; foo.qux And if you don't want to add it, well, don't. matju