@value interface Object1<#x, #y> { refines Object3<#y> // -> refines Object2 } @value interface Object2 { } @type interface Type<#x> { } concrete Child { refines Parent // -> refines Object1> // -> refines Object3> // -> refines Object2 defines Type } @value interface Parent<#x> { refines Object1<#x, Object3> // -> refines Object3> // -> refines Object2 } @value interface Object3<#x> { refines Object2 }