type foo = {a: int, b: uint}; enum bar { u(~foo), w(int), } fn main() { assert (alt u(~{a: 10, b: 40u}) { u(~{a: a, b: b}) { a + (b as int) } _ { 66 } } == 50); }