I'm not interested in distinguishing between multiple appearances of the same type as in the RFC example, so rather like:
let foo: (~str|int) = (_|666);
match foo {
(s: str|_) => println(fmt!("string: %?", s)),
(_|n: int) => println(fmt!("int: %?", n))
}
The most disappointing thing I've encountered with Rust is not seeing anonymous enums or structural typing other than for tuples. I read somewhere that structural typing is only for tuples because the word struct is in structural(?!).