module A { struct T{v: u64} public new(u: u64) : V#Self.T { return T{u: move(u)}; } public value(this: V#Self.T): u64 { let f: &u64; f = &(&mut this).v; return *move(f); } } //! new-transaction import {{default}}.A; main() { let x: V#A.T ; let x_ref: u64; x = A.new(5); x_ref = A.value(move(x)); assert(move(x_ref) == 5, 42); return; }