// 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. @type interface Object1<#x> { #x requires Value3<#x> }