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