public struct OuterNonGeneric { public struct InnerNonGeneric { public typealias AliasTy = () } public struct InnerGeneric { public typealias AliasTy = (Y1, Y2) } } public struct OuterGeneric { public struct InnerNonGeneric { public typealias AliasTy = (X1, X2) } public struct InnerGeneric { public typealias AliasTy = (X1, X2, Y1, Y2) } }