enum blah { a(int, int, uint), b(int, int), c, }

fn or_alt(q: blah) -> int {
    alt q { a(x, y, _) | b(x, y) { ret x + y; } c { ret 0; } }
}

fn main() {
    assert (or_alt(c) == 0);
    assert (or_alt(a(10, 100, 0u)) == 110);
    assert (or_alt(b(20, 200)) == 220);
}
