Comments to Eric Lippert's post made me think about a common design pattern that does not seem to have language support. The pattern I will describe shortly is somewhat similar to the Decorator pattern, but differs in a sense that Decorator is about adding extra capabilities at runtime, whereas this one is strictly compile time. It is also a generalization of the capabilities provided by the Delphi keyword "implements".

The essense of the pattern is this: I have classes that implement IFoo, and, separately, a piece of code that can work on any instance of IFoo, producing some other useful functionality that can be wrapped into interface IBar. Naturally, the signature is something like static IBar FooBar.Execute(IFoo). Let's call it default implementation. Now I want to use this default implementation for half of my classes implementing IFoo (another half either don't need IBar at all or needs non-default implementation). What I want is the ability to make it so by simply declaring this without writing actual code, something like

class Bla: IFoo, IBar FooBar.Execute(IFoo) {}

Am I completely out of my mind? Is there a way to compactly express this design currently?