// Setup. @type interface Type<#x|> { x requires Value0 } @value interface Value0 {} @value interface Value1<|#y> { y requires Value0 } @value interface Value2 { refines Value0 } // Tests. concrete Object0 { defines Type refines Value1 }