@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 }