address 0x123 { module Test { struct A has key, store { x1: T1, x2: T2, } public fun test(): bool { exists>(@0x1) } public fun update(x: T) acquires A { borrow_global_mut>(@0x1).x1 = x; } public fun update_caller() acquires A { update(1) } public fun update_ints() acquires A { borrow_global_mut>(@0x1).x1 = 22; } public fun publish(signer: &signer, x: A) { move_to>(signer, x) } public fun assert_assume_memory() { spec { assume exists>(@0x1); assert exists>(@0x1); }; } public fun call_assert_assume_memory() { assert_assume_memory(); } } }