(module if_branch_consume_split_no_leak_pin (data Box (ctor B (con Int))) (fn sink (type (fn-type (params (own (con Box))) (ret (own (con Unit))) (effects IO))) (params b) (body (match b (case (pat-ctor B n) (do io/print_str "x"))))) (fn run_if (type (fn-type (params (own (con Box)) (own (con Int))) (ret (own (con Unit))) (effects IO))) (params b k) (body (if (app ge k 0) (do io/print_str "") (app sink b)))) (fn main (type (fn-type (params) (ret (own (con Unit))) (effects IO))) (params) (body (let b (term-ctor Box B 7) (seq (app run_if b 0) (do io/print_str "done\n"))))))