Delegator ::= Object clone tap { self delegate := Nil. self clone := { Parents above (parent self, 'clone) call tap { self delegate := #'(self delegate). }. }. self operation := { localize. if { this delegate slot? 'thing. } then { this delegate thing. } else { "default implementation". }. }. }. Delegate ::= Object clone tap { self thing := "delegate implementation". }. ;; No delegate foo := Delegator clone. println: foo operation. ;; "default implementation" ;; Delegate which lacks `thing` foo delegate := Object. println: foo operation. ;; "default implementation" ;; Delegate which implements `thing` foo delegate := Delegate. println: foo operation. ;; "delegate implementation"