obj.slot_name や recv.msg(1, 2, :a 3) のように記述する、 オブジェクトのスロットにアクセスしたり メッセージ送ったりするためのオブジェクトです。 評価すると、args が指定されていなければ receiver の message というスロットに アクセスし、指定されていれば receiver に args を引数として message を送り、 その結果を返します。
'obj.slot_name のように記述すると、スロット receiver に obj が、 スロット message に slot_name がセットされた messenger を、 'recv.msg(1, 2, :a 3) のように記述すると、スロット receiver に recv が、 スロット message に msg が、スロット args に &(1, 2, :a 3) がセットされた messenger を得ることができます。
self.slot_name や self.msg(arg) のように、レシーバがシンボルの self である場合、 .slot_name や .msg(arg) といったように、self を省略することができます。
messenger には、ブロックや関数を引数として指定するのに便利な構文があります。 詳しくは、インデントブロック の項を見てください。
Messenger
その他のメソッドの定義は、初期化ファイル群の中の methods.cy にあります。