@value interface Object1<#x|> {} @type interface Object2<#z> {} concrete Object3<#y|> { // Despite matching variance with Object1, Object2 turns it into invariant. defines Object2> }