type Thingable interface fun thing ← text by block do end end type Delegate implements Thingable model fun thing ← text by block return "delegate implementation" end end type Delegator model Thingable delegate fun operation ← <|when(me.delegate æ null, "default implementation", me.delegate.thing()) end fun byDelegate ← Delegator by Thingable delegate var delegator ← Delegator() delegator.delegate ← delegate return delegator end type Main Delegator a ← Delegator() writeLine(a.operation()) Delegator b ← Delegator.byDelegate(Delegate()) writeLine(b.operation())