Interfaces are NOT compatible to Object.
interface I{
void func();
}
class C : I {
void func(){}
}
void main(){
I i = new C;
i.func(); // OK
i.toHash(); // error !!
(cast(C)i).toHash(); // OK
(cast(Object)i).toHash(); // OK
}
I think this is a failure in the language design. What do you think?