public typealias Second = U public struct Packed { public var tuple1: (repeat each T) public var tuple2: (repeat (each T) -> ()) public var tuple3: (repeat Scalar) public var tuple4: (repeat Second) public var func1: (repeat each T) -> () public var func2: (repeat Scalar) -> () public var func3: (repeat Second) -> () public var nominal1: AlsoPacked public var nominal2: AlsoPacked> public var nominal3: AlsoPacked> } public struct AlsoPacked { public var t: (repeat each T) } public struct Scalar { public var t: T } public protocol P { associatedtype A var t: A { get } } extension AlsoPacked: P {} public struct NestedPacked { public struct Inner { var t: (repeat Packed) var u: (repeat AlsoPacked) } } public struct Simple { var x1: AlsoPacked var x2: AlsoPacked var x3: AlsoPacked } public struct Complex { var x1: Packed var x2: Packed var x3: Packed }