//# publish module 0x1.A { public parity(u: u64): u64 * bool { label b0: return copy(u), (move(u) % 2 == 0); } public takes_bool(b: bool): u64 { label b0: jump_if (move(b)) b2; label b1: return 0; label b2: return 1; } public eat_stack(v: u64) { label b0: return; } } //# run import 0x1.A; main() { let k: u64; let ans: u64; let e: u64; label b0: k = 100; // positive stack ans = A.takes_bool(A.parity(move(k))); assert(move(ans) == true, 42); // negative stack, but never reached during checking (A.eat_stack(), A.eat_stack()); return; }