,---------------. ,------------. |MyStruct3 | |MyInterface | |---------------| |------------| |- foo() | |- foo() bool| | | | | |+ Foo MyStruct1| `------------' | | `---------------' ,------------. |MyStruct1 | |------------| |- foo() bool| | | `------------' | ,---------. |MyStruct2| |---------| `---------'