According to the paper from Bjarne Stroustrup: http://www.research.att.com/~bs/multimethods.pdf this is a possible syntax D3 can use for the double dispatch: void foo(@virtual A a, @virtual B b) {} Bye, bearophile