Smalltalkだと
(A allSelectors reject: [ :s | B allSelectors includes: s]) do: [ :selector | B compile: selector, String cr, '^ a ', selector classified: 'delegation' notifying: nil ]
の1行でAにはあるがBにはない全てのメソッドを委譲するメソッドを自動生成できる。
もちろん移譲先が複数あっても問題ない。