@value interface Type1 {} @value interface Type2 { refines Type1 } @value interface Type3 { refines Type2 } @value interface Interface1 { something (Type2) -> (Type1) } @value interface Interface2 { something (Type3) -> (Type2) } @value interface Parent { refines Interface1 refines Interface2 something (Type2) -> (Type2) } concrete Child { refines Parent }