module 0x42::M1 { // Not using a phantom parameter at all is ok. struct S1 { a: u64 } // Phantom parameters can be used in phantom position. struct S2 { a: S1, b: vector> } // Mixing phantom and non-phantom parameters struct S3 { a: T2, b: T4 } // Phantom parameters should be allowed to be declared with constraints. struct S4 { a: u64 } struct S5 { a: S4 } }