; NEGATIVE FIXTURE. The LLM-natural mistake: author writes a
; self-recursive helper and reaches for `recur` as if it were a
; generic self-tail-call, but there is no enclosing `loop`.
; Expected: `ail check` exits 1 with code recur-outside-loop.
(module loop_recur_3a_recur_outside_loop
  (fn countdown
    (type (fn-type (params (own (con Int))) (ret (own (con Int)))))
    (params n)
    (body
      (if (app eq n 0)
          0
          (recur (app - n 1)))))
  (fn main
    (type (fn-type (params) (ret (own (con Unit))) (effects IO)))
    (params)
    (body (app print (app countdown 5)))))
