xxxxxxxxxx
import std.stdio;
interface I { void f(); }
interface J { int f(); }
class A : I, J
{
void f() { writeln("void f()"); }
int f() { writeln("int f()"); return 0; }
}
void main()
{
A a = new A();
// Error: A.f called with argument types () matches both: A.f() and A.f()
// Yeah, that error message could be better.
//a.f();
(cast(I)a).f(); // prints "void f()"
(cast(J)a).f(); // prints "int f()"
}