type foo = {a: int, b: uint};
tag 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);
}