@value interface Type<#a, #b|#c, #d|#e, #f> { refines Parent refines Other, #f> get () -> (#x) set (#x) -> () something<#y> #y requires T1 #y allows T2 #y defines T3 (#y) -> (#y) }