interface Foo { fn int foo(); } struct Abc (Foo) { int a; } struct Bcd { inline Abc a; } struct Def { Abc a; } fn int Abc.foo(&self) @dynamic => 1; typedef Foob = inline Abc; fn void test1() { Foob b; Abc x; Bcd y; Def d; Foo f = &x; f = &b; f = &y; f = &d; // #error: assume the interface is implemented }