; Smoke fixture for the `lt__Int` / `le__Int` / `gt__Int` /
; `ge__Int` / `ne__Int` intercept-arm family (operator-routing-eq-ord.1
; Task 13). Forces the mono pass to instantiate each of the five
; Ord/Eq free helpers at Int by calling each one once; the linked
; pin test (ord_int_intercept_ir_pin.rs) reads the resulting IR and
; asserts each body lowers to a single direct `icmp` carrying
; `alwaysinline`. The body is not perf-relevant — only the symbol
; set and the IR shape are pinned.

(module ord_int_intercept_smoke

  (fn drive
    (doc "Touches each of lt/le/gt/ge/ne at Int once. Returns 0 unconditionally; we care only about which mono symbols the call graph forces the unified mono pass to emit.")
    (type (fn-type (params (own (con Int)) (own (con Int))) (ret (own (con Int)))))
    (params a b)
    (body
      (let r1 (app lt a b)
      (let r2 (app le a b)
      (let r3 (app gt a b)
      (let r4 (app ge a b)
      (let r5 (app ne a b)
        0)))))))

  (fn main
    (type (fn-type (params) (ret (own (con Unit))) (effects IO)))
    (params)
    (body (app print (app drive 1 2)))))
