// `catch` rejection (ERR step E1.5): the operand must be failable. Unlike
// `try` / `raise`, `catch` needs no failable enclosing function — it consumes
// the error locally — so the only stable rejection is a non-failable operand.
// The positive cases live in `examples/226-catch.sx`.

#import "modules/std.sx";

plain :: () -> i32 { return 0; }

main :: () -> i32 {
    plain() catch (e) { return 1; };   // error: operand has type i32 (not failable)
    return 0;
}
