事後条件をチェックすると結果が変わるプログラム・・・を作れなくするには

いろいろ考えたのですが、式(Expression)の中に操作(operation)の適応(apply)があるのがマズイかなぁと思います。関数(function)の適応ならOKなんですけれど。
でも、操作の適応を別の文法にすると、すごく使いづらくなるでしょう。
例えば、call foo(x); みたいにすると、戻り値が使えなくなります。
また、式の中で操作は呼べなくなります。
チョット前のPascalVBなどでは使われていた構文なので、悪くない解決方法とは思いますが、Javaのようにメソッドを続けて呼ぶことができなくなります。メリットは十分ありますが、デメリットも大きいです。
それ以外のいい解決方法が見つかりませんでした。