address 0x123 { module Test { struct A { x1: T1, x2: T2, } struct B { x1: A, } public fun f1(x1: T): A { A{x1, x2: 10} } public fun f2(x: u8): B { B{x1: f1(x)} } public fun f3(x1: T): A { A{x1, x2: 1} } spec f3 { pragma opaque = true; } public fun f4(x1: T): B { B{x1: f3(x1)} } public fun f5(): B { f4(1) } } }