SomeEnum = enum { a, b, c, d, } foo = fn (arg: SomeEnum) SomeEnum { return arg; } [export] main = fn [cc(c)] () s32 { >some_e: SomeEnum = .c; >a = foo(some_e); >b = foo(.d); if (a != .c) #trap(); if (b != .d) #trap(); return 0; }