コードの置き換えを行うオブジェクトです。評価すると、自身を返します。
マクロを呼び出す際には引数は評価されず、 スロット func にセットされたオブジェクトにその引数を渡して呼び出します。 その後、マクロを呼び出した箇所が返ってきた値に置き換えられ、 その箇所がもう一度評価されます。 詳しくは、マクロの使用法の項を見てください。