//# publish module 0x42.M { import 0x1.signer; struct Foo has key { x: u8, } public foo(account: &signer) { label b0: move_to(move(account), Foo {x: 100u8}); return; } public bar(account: &signer): u8 acquires Foo { let x: u8; label b0: Foo { x } = move_from(signer.address_of(move(account))); return move(x); } } //# run --signers 0x1 import 0x42.M; main(account: signer) { label b0: M.foo(&account); return; } //# run --signers 0x1 import 0x42.M; main(account: signer) { label b0: assert(M.bar(&account) == 100u8, 42); return; }