@type interface Type<#a,#b|#c,#d|#e,#f> { #a allows Parent #b requires Type2<#a> #c defines Equals<#c> create () -> (optional #x) create2<#y> #y requires #x #y allows T2 #y defines T3 () -> (optional #x) }